欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

1.新建maven項目
添加依賴:

<!-- 阿里云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

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

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

3、創(chuà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);
    }
}

啟動報錯:

在這里插入圖片描述

多模塊應用時,該模塊沒有使用數據庫,配置文件中沒有數據庫配置信息,則會報錯
第一種方法:
在配置類中添加數據庫配置信息:

# mysql數據庫連接
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,解除自動加載DataSourceAutoConfiguration

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

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

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

    //讀取配置文件內容
    @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實例
            OSS ossClient = new OSSClientBuilder().build(endPoind, accessKeyId, accessKeySecret);

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

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

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

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

            //關閉OssClient
            ossClient.shutdown();

            //上傳之后把文件路勁返回
            //需要把上傳到oss路徑手動拼接出來
            //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>

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

swagger測試運行:

在這里插入圖片描述

在這里插入圖片描述

成功!!

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

相關文章

  • @JsonFormat處理LocalDateTime失效的問題

    @JsonFormat處理LocalDateTime失效的問題

    這篇文章主要介紹了關于@JsonFormat處理LocalDateTime失效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java實現(xiàn)馬踏棋盤算法

    Java實現(xiàn)馬踏棋盤算法

    這篇文章主要為大家詳細介紹了Java實現(xiàn)馬踏棋盤算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java隊列之queue用法實例分析

    java隊列之queue用法實例分析

    這篇文章主要介紹了java隊列之queue用法實例分析,Queue 隊列就是一個先入先出(FIFO)的數據結構,Queue接口繼承Collection接口。感興趣的可以了解一下
    2020-07-07
  • Java使用itextpdf實現(xiàn)生成PDF并添加圖片,水印和文字

    Java使用itextpdf實現(xiàn)生成PDF并添加圖片,水印和文字

    這篇文章主要為大家詳細介紹了Java在使用itextpdf實現(xiàn)生成PDF時如何實現(xiàn)添加圖片,水印和文字等效果,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • Spring 項目常用pom文件的依賴

    Spring 項目常用pom文件的依賴

    這篇文章主要介紹了Spring 項目常用pom文件的依賴,文中給大家提到了Spring boot starter pom的依賴關系說明,需要的朋友參考下吧
    2018-03-03
  • spring boot打包成可執(zhí)行jar包

    spring boot打包成可執(zhí)行jar包

    本篇文章主要介紹了spring boot打包成可執(zhí)行jar包,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 淺談Java實現(xiàn)回溯算法之八皇后問題

    淺談Java實現(xiàn)回溯算法之八皇后問題

    八皇后問題是一個古老而又著名的問題,是學習回溯算法的一個經典案例。今天我們就一起來探究一下吧
    2021-06-06
  • Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務配置的示例

    Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務配置的示例

    定時任務是一項至關重要的功能,它們使得我們能夠按照預定的時間執(zhí)行特定的任務,本文主要介紹了Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務配置的示例,感興趣的可以了解一下
    2024-05-05
  • IDEA進程已結束,退出代碼-1073741819 (0xC0000005)的bug

    IDEA進程已結束,退出代碼-1073741819 (0xC0000005)的bug

    這篇文章主要介紹了IDEA進程已結束,退出代碼-1073741819 (0xC0000005)的bug,本文通過實例代碼圖文的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 深入講解Java Maven配置

    深入講解Java Maven配置

    這篇文章主要介紹了Maven的安裝配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-10-10

最新評論