最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot集成阿里云OSS上傳文件系統(tǒng)教程

 更新時(shí)間:2021年06月28日 15:50:49   作者:sjgeng111  
這篇文章主要介紹了Springboot集成阿里云OSS上傳文件系統(tǒng)教程,通過詳細(xì)的圖文展示,代碼步驟的展示和文件配置信息,希望對(duì)你有所幫助

第一步:開通阿里云OSS服務(wù),創(chuàng)建Bucket,獲取id和密鑰

在這里插入圖片描述

在這里插入圖片描述

第二步:根據(jù)官方文檔編寫上傳代碼

在這里插入圖片描述

1.新建maven項(xiàng)目
添加依賴:

<!-- 阿里云oss依賴 -->
 <dependency>
 <groupId>com.aliyun.oss</groupId>
 <artifactId>aliyun-sdk-oss</artifactId>
 </dependency>
 <!-- 日期工具欄依賴 -->
 <dependency>
 <groupId>joda-time</groupId>
 <artifactId>joda-time</artifactId>
 </dependency>

2.配置application.properties

#服務(wù)端口
server.port=8002
#服務(wù)名
spring.application.name=service-oss
#環(huán)境設(shè)置:dev、test、prod
spring.profiles.active=dev

#阿里云 OSS
#不同的服務(wù)器,地址不同  需要根據(jù)自己的信息填寫
aliyun.oss.file.endpoint=your endpoint
aliyun.oss.file.keyid=your accessKeyId
aliyun.oss.file.keysecret=your accessKeySecret
#bucket可以在控制臺(tái)創(chuàng)建,也可以使用java代碼創(chuàng)建
aliyun.oss.file.bucketname=guli-file

3、創(chuàng)建啟動(dòng)類

創(chuàng)建OssApplication.java

package com.sun.oss;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan({"com.sun"})
public class OssApplication {
    public static void main(String[] args) {
        SpringApplication.run(OssApplication.class, args);
    }
}

啟動(dòng)報(bào)錯(cuò):

在這里插入圖片描述

多模塊應(yīng)用時(shí),該模塊沒有使用數(shù)據(jù)庫(kù),配置文件中沒有數(shù)據(jù)庫(kù)配置信息,則會(huì)報(bào)錯(cuò)
第一種方法:
在配置類中添加數(shù)據(jù)庫(kù)配置信息:

# mysql數(shù)據(jù)庫(kù)連接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/musicdb?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456

第二種方法:添加注解,在@SpringBootApplication注解上加上exclude,解除自動(dòng)加載DataSourceAutoConfiguration

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

4.編寫一個(gè)工具類:
用于讀取配置文件密鑰信息
ConstantPropertiesUtils.java

//當(dāng)項(xiàng)目已啟動(dòng),spring接口,spring加載之后,執(zhí)行接口一個(gè)方法
@Component
public class ConstantPropertiesUtils implements InitializingBean {

    //讀取配置文件內(nèi)容
    @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;

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

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

5.編寫controller類

@Api(description = "頭像上傳到oss")
@RestController
@RequestMapping("/eduoss/fileoss")
@CrossOrigin//解決跨域問題
public class OssController {

    @Autowired
    private OssService ossService;

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

6.編寫service類

@Service
public class OssServiceImpl implements OssService {
    //上傳頭像
    @Override
    public String uploadFileAvatar(MultipartFile file) {
        //工具類獲取值
        String endPoind = ConstantPropertiesUtils.END_POIND;
        String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
        String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
        String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
        try {
            //創(chuàng)建Oss實(shí)例
            OSS ossClient = new OSSClientBuilder().build(endPoind, accessKeyId, accessKeySecret);

            //獲取上傳文件輸入流
            InputStream inputStream = file.getInputStream();
            //獲取文件名稱
            String filename = file.getOriginalFilename();

            //1.防止上傳文件名重復(fù),使用UUid
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            //拼接fileName
            filename=uuid+filename;

            //2.把文件按照日期分類
            //獲取當(dāng)前日期,需要引入org.joda.time依賴
            String datePath = new DateTime().toString("yyyy/MM/dd");
            //拼接
            filename=datePath+"/"+filename;

            //調(diào)用oss方法實(shí)現(xiàn)上傳
            //第一個(gè)參數(shù) Bucket名稱
            //第二個(gè)參數(shù) 上傳到oss的文件路徑和文件名
            //第三個(gè)參數(shù) 上傳文件輸入流
            ossClient.putObject(bucketName,filename,inputStream);

            //關(guān)閉OssClient
            ossClient.shutdown();

            //上傳之后把文件路勁返回
            //需要把上傳到oss路徑手動(dòng)拼接出來
            //https://edu-975.oss-cn-beijing.aliyuncs.com/07aef13af7ea82703f3eb320c3f577ec.jpg
            String url="https://"+bucketName+"."+endPoind+"/"+filename;
            return url;


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

    }
}

解決上傳文件大?。?/span>

# 單個(gè)文件大小
spring.servlet.multipart.max-request-size=10MB
# 單次最大文件
spring.servlet.multipart.max-file-size=3MB

swagger測(cè)試運(yùn)行:

在這里插入圖片描述

在這里插入圖片描述

成功?。?/p>

到此這篇關(guān)于Springboot集成阿里云OSS上傳文件系統(tǒng)教程的文章就介紹到這了,更多相關(guān)Springboot集成阿里云oss文件上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java單元測(cè)試之Junit框架使用教程

    詳解Java單元測(cè)試之Junit框架使用教程

    單元測(cè)試就是針對(duì)最小的功能單元編寫測(cè)試代碼,Junit是使用Java語(yǔ)言實(shí)現(xiàn)的單元測(cè)試框架,它是開源的,Java開發(fā)者都應(yīng)當(dāng)學(xué)習(xí)并使用Junit編寫單元測(cè)試。本文就來講講Junit框架的使用教程,需要的可以參考一下
    2022-05-05
  • Mybatis源碼解析之mapper接口的代理模式詳解

    Mybatis源碼解析之mapper接口的代理模式詳解

    這篇文章主要介紹了Mybatis源碼解析之mapper接口的代理模式詳解,在mybatis中執(zhí)行sql時(shí)有兩種方式,一種是基于statementId,也就是直接調(diào)用SqlSession的方法,需要的朋友可以參考下
    2023-12-12
  • JavaWeb核心技術(shù)中Session與Cookie淺析

    JavaWeb核心技術(shù)中Session與Cookie淺析

    session的工作原理和cookie非常類似,在cookie中存放一個(gè)sessionID,真實(shí)的數(shù)據(jù)存放在服務(wù)器端,客戶端每次發(fā)送請(qǐng)求的時(shí)候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)
    2023-02-02
  • Java代碼讀取properties配置文件的示例代碼

    Java代碼讀取properties配置文件的示例代碼

    這篇文章主要介紹了Java代碼讀取properties配置文件,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Spring security BCryptPasswordEncoder密碼驗(yàn)證原理詳解

    Spring security BCryptPasswordEncoder密碼驗(yàn)證原理詳解

    這篇文章主要介紹了Spring security BCryptPasswordEncoder密碼驗(yàn)證原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Spring注解Autowired的底層實(shí)現(xiàn)原理詳解

    Spring注解Autowired的底層實(shí)現(xiàn)原理詳解

    從當(dāng)前springboot的火熱程度來看,java?config的應(yīng)用是越來越廣泛了,在使用java?config的過程當(dāng)中,我們不可避免的會(huì)有各種各樣的注解打交道,其中,我們使用最多的注解應(yīng)該就是@Autowired注解了。本文就來聊聊Autowired的底層實(shí)現(xiàn)原理
    2022-10-10
  • Java中常用的設(shè)計(jì)模式之單例模式詳解

    Java中常用的設(shè)計(jì)模式之單例模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java中常用的設(shè)計(jì)模式之單例模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • jar包沖突常用的解決方案

    jar包沖突常用的解決方案

    引言在使用java語(yǔ)言開發(fā),maven做項(xiàng)目管理時(shí),我們經(jīng)常遇到一個(gè)頭疼的問題就是jar包沖突,這篇文章主要給大家介紹了關(guān)于jar包沖突常用的解決方案,需要的朋友可以參考下
    2023-12-12
  • 淺談servlet中的request與response

    淺談servlet中的request與response

    下面小編就為大家?guī)硪黄獪\談servlet中的request與response。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參加。一起跟隨小編過來看看吧
    2016-07-07
  • SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán)

    SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán)

    SpringSecurity是一個(gè)強(qiáng)大且靈活的身份驗(yàn)證和訪問控制框架,本文主要介紹了SpringSecurity+Redis+Jwt實(shí)現(xiàn)用戶認(rèn)證授權(quán),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07

最新評(píng)論

镇安县| 唐海县| 安达市| 台山市| 邢台市| 卢氏县| 岗巴县| 衢州市| 桃源县| 稷山县| 维西| 黎平县| 侯马市| 黑山县| 上林县| 高阳县| 呼玛县| 芜湖县| 民勤县| 辛集市| 山西省| 巍山| 高清| 文水县| 育儿| 双柏县| 河北省| 恩平市| 金乡县| 巴塘县| 田阳县| 湘乡市| 泗水县| 江西省| 阿城市| 陕西省| 北流市| 娄烦县| 竹山县| 饶河县| 宜章县|