国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot整合阿里云oss實(shí)現(xiàn)文件上傳

這篇具有很好參考價(jià)值的文章主要介紹了springboot整合阿里云oss實(shí)現(xiàn)文件上傳。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

通過(guò)阿里云oss進(jìn)行文件上傳,首先需要開(kāi)通相關(guān)的服務(wù),這邊就不在具體說(shuō)明,不懂的可以百度看一下。

阿里云oss有幾個(gè)關(guān)鍵的參數(shù),這也是后續(xù)通過(guò)java進(jìn)行上傳所需要的參數(shù),分別是endpoint(域結(jié)點(diǎn))、AccessKey ID(秘鑰id)、AccessKey secret(秘鑰)、bucket name(bucket域名)。

springboot oss demo,阿里云,云計(jì)算,spring boot,javaspringboot oss demo,阿里云,云計(jì)算,spring boot,javaspringboot oss demo,阿里云,云計(jì)算,spring boot,java

?通過(guò)這幾個(gè)關(guān)鍵字段才能過(guò)連接上阿里云的oss,可以通過(guò)配置文件來(lái)進(jìn)行連接,具體配置如下:

pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demooss</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demooss</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--日期時(shí)間工具-->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.10.1</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

# 服務(wù)端口
server.port=8888

# 環(huán)境設(shè)置:dev、test、prod
spring.profiles.active=dev

#阿里云oss
#不同的服務(wù)器,地址不同
aliyun.oss.file.endpoint=oss-cn-shanghai.aliyuncs.com
aliyun.oss.file.keyid=LTAI5tMYCr1pxcx4vz2o7riE
aliyun.oss.file.keysecret=vtAZaFH4CqJcqFj5oyyuRobivPNK8p

#bucket可以在控制臺(tái)創(chuàng)建,也可以在java代碼創(chuàng)建
aliyun.oss.file.bucketname=aaa-1010

然后創(chuàng)建相應(yīng)的包service, controller, utils等。

springboot oss demo,阿里云,云計(jì)算,spring boot,java

utils工具類(lèi)代碼:

@Component
public class Utils implements InitializingBean {

    //讀取配置文件內(nèi)容  value注解讀取屬性值
    @Value("${aliyun.oss.file.endpoint}")
    private String endpoint;

    @Value("${aliyun.oss.file.keyid}")
    private String keyId;

    @Value("${aliyun.oss.file.keysecret}")
    private String keySecret;

    @Value("${aliyun.oss.file.bucketname}")
    private String bucketName;


    //定義公開(kāi)靜態(tài)常量
    public static String END_POINT;
    public static String ACCESS_KEY_ID;
    public static String ACCESS_KEY_SECRET;
    public static String BUCKET_NAME;

    @Override
    public void afterPropertiesSet() throws Exception {
        END_POINT = endpoint;
        ACCESS_KEY_ID = keyId;
        ACCESS_KEY_SECRET = keySecret;
        BUCKET_NAME = bucketName;
    }
}

?通過(guò)value注解獲取配置中的結(jié)果,注意value引用的包是spring里面的org.springframework.beans.factory.annotation.Value,不能引錯(cuò)。再設(shè)置幾個(gè)公共靜態(tài)常量,將value注解得到的配置結(jié)果給到這幾個(gè)靜態(tài)常量,后續(xù)就可以通過(guò)方法直接調(diào)用。

swagger配置:參考上篇文章(注意相關(guān)的注解)

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();

    }
    private ApiInfo webApiInfo(){
         return new ApiInfoBuilder()
         .title("API文檔")
         .description("接口定義")
         .version("1.0")
         .contact(new Contact("mzz", "http://www.baidu.com",
                "1345656307@qq.com"))
         .build();
         }
}

service接口以及實(shí)現(xiàn)類(lèi)

public interface OssService {
    String uploadFile(MultipartFile file);
}
@Service
public class OssServiceImpl implements OssService {

    @Override
    public String uploadFile(MultipartFile file) {

        String endpoint = Utils.END_POINT;
        String accessKeyId = Utils.ACCESS_KEY_ID;
        String accessKeySecret = Utils.ACCESS_KEY_SECRET;
        String bucketName = Utils.BUCKET_NAME;

        try {
            // 創(chuàng)建OSSClient實(shí)例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            InputStream inputStream =file.getInputStream();
            //獲取文件名稱(chēng)
            String fileName = file.getOriginalFilename();

            //1 在文件名稱(chēng)里面添加隨機(jī)唯一值
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            fileName=uuid+fileName;

            //2 文件按照日期分類(lèi)
            String datePath = new DateTime().toString("yyyy/MM/dd");

            //拼接
            fileName = datePath+"/"+fileName;

            //oss方法實(shí)現(xiàn)上傳
            //第一個(gè)參數(shù) bucket名稱(chēng)
            //第二個(gè)參數(shù) 上傳到oss文件路徑和名稱(chēng) fileName
            //第三個(gè)參數(shù) 上傳文件輸入流
            ossClient.putObject(bucketName, fileName, inputStream);
            ossClient.shutdown();

            //把上傳之后文件路徑返回
            //需要把上傳到阿里云oss路徑手動(dòng)拼接出來(lái)
            String url = "https://"+bucketName+"."+endpoint+"/"+fileName;

            return url;

        } catch (Exception e){
            e.printStackTrace();
            return null;

        }
    }
}

這邊需要注意一下,因?yàn)椴煌挠脩?hù)可能上傳相同的文件,所以需要通過(guò)uuid生成一個(gè)隨機(jī)唯一值,不加的話可能會(huì)導(dǎo)致第二次上傳相同的文件覆蓋掉前一次的文件。并且將文件按照日期分類(lèi),可以通過(guò)拼接完成。

controller代碼:

@RestController
@RequestMapping("/fileoss")
public class OssController {

    @Resource
    private OssService ossService;

    @PostMapping
    public R uploadOssFile(MultipartFile file){
        //獲取上傳文件 MultipartFile
        String url = ossService.uploadFile(file);  //返回上傳到oss的路徑
        return R.ok().data("url",url);
    }

}

啟動(dòng)類(lèi):

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@ComponentScan(basePackages = {"com.example"})
public class DemoossApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoossApplication.class, args);
    }

}

啟動(dòng)類(lèi)需要注意,不涉及數(shù)據(jù)庫(kù)的話有可能會(huì)報(bào)錯(cuò)

1.@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)括號(hào)里面的exclude = DataSourceAutoConfiguration.class需要加上,因?yàn)槲疫@邊沒(méi)有用的數(shù)據(jù)庫(kù)的東西,如果不加會(huì)報(bào)錯(cuò)。

2.注解用@SpringBootApplication,在application.properties中加上數(shù)據(jù)庫(kù)的配置信息。

一般我們通過(guò)第一種方式實(shí)現(xiàn)。

最后進(jìn)行swagger測(cè)試

springboot oss demo,阿里云,云計(jì)算,spring boot,java

?springboot oss demo,阿里云,云計(jì)算,spring boot,java

這是看一下阿里云oss里面就有記錄了

springboot oss demo,阿里云,云計(jì)算,spring boot,java

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-822487.html

?

到了這里,關(guān)于springboot整合阿里云oss實(shí)現(xiàn)文件上傳的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot整合阿里云OSS文件存儲(chǔ)解決方案

    SpringBoot整合阿里云OSS文件存儲(chǔ)解決方案

    ?????作者名稱(chēng):DaenCode ??作者簡(jiǎn)介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專(zhuān)欄:SpringBoot實(shí)戰(zhàn) 以下是專(zhuān)欄部分內(nèi)容,更多內(nèi)容請(qǐng)前往專(zhuān)欄查看! 標(biāo)題 一文帶你學(xué)會(huì)使用SpringBoot+Avue實(shí)現(xiàn)短信通知功能

    2024年02月08日
    瀏覽(24)
  • SpringBoot對(duì)接阿里云OSS上傳文件以及回調(diào)(有坑)

    SpringBoot對(duì)接阿里云OSS上傳文件以及回調(diào)(有坑)

    今天在對(duì)接阿里云OSS對(duì)象存儲(chǔ), 把這過(guò)程記錄下來(lái) 阿里云的內(nèi)容很多,文檔是真的難找又難懂 本文主要是用的PostObject API 加上 Callback參數(shù) PostObject - https://help.aliyun.com/document_detail/31988.html?spm=a2c4g.31989.0.0 Callback - https://help.aliyun.com/document_detail/31989.html?spm=a2c4g.31988.0.0 前端向后

    2024年02月11日
    瀏覽(21)
  • java使用阿里云OSS實(shí)現(xiàn)文件上傳到云盤(pán)

    java使用阿里云OSS實(shí)現(xiàn)文件上傳到云盤(pán)

    一、進(jìn)入阿里云官網(wǎng)的OSS管理控制臺(tái)并注冊(cè)賬號(hào) 阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計(jì)算服務(wù)平臺(tái) 歡迎登錄阿里云,全球領(lǐng)先的云計(jì)算及人工智能科技公司,阿里云為200多個(gè)國(guó)家和地區(qū)的企業(yè)、開(kāi)發(fā)者和政府機(jī)構(gòu)提供云計(jì)算基礎(chǔ)服務(wù)及解決方案。阿里云云計(jì)算、安

    2024年01月17日
    瀏覽(17)
  • SpringBoot整合阿里云OSS對(duì)象存儲(chǔ)

    SpringBoot整合阿里云OSS對(duì)象存儲(chǔ)

    阿里云對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,簡(jiǎn)稱(chēng)OSS)為您提供基于網(wǎng)絡(luò)的數(shù)據(jù)存取服務(wù)。使用OSS,您可以通過(guò)網(wǎng)絡(luò)隨時(shí)存儲(chǔ)和調(diào)用包括文本、圖片、音頻和視頻等在內(nèi)的各種非結(jié)構(gòu)化數(shù)據(jù)文件。 阿里云OSS將數(shù)據(jù)文件以對(duì)象(object)的形式上傳到存儲(chǔ)空間(bucket)中。 可以進(jìn)行

    2024年02月06日
    瀏覽(29)
  • (總目錄)springboot - 實(shí)現(xiàn)zip文件上傳并對(duì)zip文件解壓, 包含上傳oss

    (總目錄)springboot - 實(shí)現(xiàn)zip文件上傳并對(duì)zip文件解壓, 包含上傳oss

    本文會(huì)包含 java 文件校驗(yàn) 文件上傳 文件壓縮 zip文件的解壓 oss的文件上傳 oss前端上傳 文章像齒輪一樣, 部分位置需要自己組裝滿(mǎn)足不同業(yè)務(wù)需求 需要哪個(gè)就加哪個(gè) 注意類(lèi)型和位置即可 注釋都是很全的 如果在使用中 遇到問(wèn)題 歡迎評(píng)論區(qū)指正 === 傳送門(mén): MultipartFile 統(tǒng)一文件

    2024年02月07日
    瀏覽(26)
  • 阿里云OSS文件上傳

    阿里云OSS文件上傳

    需求分析:實(shí)現(xiàn)文件上傳與下載 ,與SprinCloud Alibaba整合 步驟一:注冊(cè)帳號(hào) 阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計(jì)算服務(wù)平臺(tái) ?第二步:創(chuàng)建Bucket ?第三步,創(chuàng)建Accesskey? 注意:創(chuàng)建時(shí)候一定記得復(fù)制帳號(hào)密碼,密碼只在創(chuàng)建成功后顯示一次! 第四步:安裝對(duì)象存儲(chǔ)

    2024年01月24日
    瀏覽(25)
  • 使用SpringBoot將圖片上傳至阿里云OSS

    使用SpringBoot將圖片上傳至阿里云OSS

    1. 什么是OSS? 官方的解釋是這樣的:阿里云對(duì)象存儲(chǔ)OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),提供99.9999999999%(12個(gè)9)的數(shù)據(jù)持久性,99.995%的數(shù)據(jù)可用性。 官網(wǎng):對(duì)象存儲(chǔ)OSS 2. 為什么要使用OSS? 作者認(rèn)為主要是方便項(xiàng)目上線后的文件業(yè)務(wù)的處

    2024年02月06日
    瀏覽(25)
  • 文件上傳對(duì)接阿里云OSS

    文件上傳對(duì)接阿里云OSS

    1.首先注冊(cè)登陸阿里云,在產(chǎn)品里找到oss服務(wù) ?2.點(diǎn)擊開(kāi)通oss服務(wù)后,可以看到oss服務(wù)面板 ?3.創(chuàng)建一個(gè)Bucket文件存儲(chǔ)桶 Bucket 相當(dāng)于 dir =bbs/avatar 用作文件隔離 4.java對(duì)接oss服務(wù) 找到j(luò)ava SDK 5.導(dǎo)入SDK的依賴(lài) ?如果使用的是Java 9及以上的版本,則需要添加jaxb相關(guān)依賴(lài)。添加jaxb相關(guān)

    2024年02月05日
    瀏覽(19)
  • 阿里云對(duì)象存儲(chǔ)OSS文件上傳

    阿里云對(duì)象存儲(chǔ)OSS文件上傳

    阿里云oss地址: 對(duì)象存儲(chǔ)OSS_云存儲(chǔ)服務(wù)_企業(yè)數(shù)據(jù)管理_存儲(chǔ)-阿里云 阿里云對(duì)象存儲(chǔ)OSS是一款海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),提供12個(gè)9的數(shù)據(jù)持久性,99.995%的數(shù)據(jù)可用性和多種存儲(chǔ)類(lèi)型,適用于數(shù)據(jù)湖存儲(chǔ),數(shù)據(jù)遷移,企業(yè)數(shù)據(jù)管理,數(shù)據(jù)處理等多種場(chǎng)景,可對(duì)

    2024年02月12日
    瀏覽(24)
  • Golang操作阿里云OSS上傳文件

    Golang操作阿里云OSS上傳文件

    為什么要使用OSS?應(yīng)用場(chǎng)景是什么? 最近在開(kāi)發(fā)考試系統(tǒng),里面需要上傳課件,課件包括pdf,map等等各種類(lèi)型的文件,這些文件不能像圖片一樣,直接上傳到項(xiàng)目目錄下面,需要單獨(dú)存放,阿里云就提供了存儲(chǔ)方式,然后OSS是其中的一種,可以用來(lái)存儲(chǔ)一些文件。 我們需要

    2024年02月02日
    瀏覽(39)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包