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

Spring Boot對(duì)接七牛云存儲(chǔ)的詳細(xì)步驟和流程

 更新時(shí)間:2025年08月04日 09:51:10   作者:奇妙智能  
這篇文章主要介紹了SpringBoot對(duì)接七牛云存儲(chǔ)的完整流程,涵蓋注冊(cè)賬號(hào)、配置項(xiàng)目、文件上傳/刪除/下載及列表查詢、前端集成等步驟,并強(qiáng)調(diào)了安全性、異常處理及擴(kuò)展功能如圖片處理等,需要的朋友可以參考下

以下是 Spring Boot 對(duì)接七牛云存儲(chǔ)的詳細(xì)步驟和流程,結(jié)合了多個(gè)開(kāi)發(fā)實(shí)踐和最佳方案:

??一、前期準(zhǔn)備??

??注冊(cè)七牛云賬號(hào)??

  • 訪問(wèn)七牛云官網(wǎng),完成注冊(cè)并登錄。
  • 進(jìn)入「密鑰管理」獲取 Access KeySecret Key(用于鑒權(quán))。

??創(chuàng)建存儲(chǔ)空間(Bucket)??

  • 在控制臺(tái)選擇「對(duì)象存儲(chǔ)」,創(chuàng)建新的存儲(chǔ)空間,命名后記錄 Bucket 名稱。
  • 設(shè)置存儲(chǔ)空間屬性(如存儲(chǔ)類型、地域等),獲取存儲(chǔ)空間的訪問(wèn)域名(如 http://xxx.bkt.clouddn.com)。

??二、Spring Boot 項(xiàng)目配置??

1. ??添加依賴??

pom.xml 中引入七牛云 Java SDK:

<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>[7.2.0, 7.7.99]</version>
</dependency>

??注意??:版本號(hào)需根據(jù)最新網(wǎng)頁(yè)調(diào)整。

2. ??配置參數(shù)??

application.yml 中添加七牛云配置:

qiniu:
  accessKey: your_access_key
  secretKey: your_secret_key
  bucket: your_bucket_name
  domain: http://xxx.bkt.clouddn.com  # 存儲(chǔ)空間訪問(wèn)域名
  region: huadong  # 存儲(chǔ)空間所在地域(如華東:huadong)

3. ??配置類??

創(chuàng)建 QiniuProperties 類綁定配置:

@Data
@ConfigurationProperties(prefix = "qiniu")
public class QiniuProperties {
    private String accessKey;
    private String secretKey;
    private String bucket;
    private String domain;
    private String region;
}

??三、實(shí)現(xiàn)文件上傳功能??

1. ??工具類開(kāi)發(fā)??

創(chuàng)建 QiniuUtils 工具類,封裝上傳邏輯:

@Component
public class QiniuUtils {
    @Autowired
    private QiniuProperties qiniuProperties;

    // 上傳文件到七牛云
    public String uploadFile(MultipartFile file) {
        try {
            Configuration cfg = new Configuration(Region.region2()); // 根據(jù)實(shí)際地域選擇
            UploadManager uploadManager = new UploadManager(cfg);
            
            Auth auth = Auth.create(qiniuProperties.getAccessKey(), qiniuProperties.getSecretKey());
            String upToken = auth.uploadToken(qiniuProperties.getBucket());
            
            // 生成唯一文件名(避免重復(fù))
            String fileName = UUID.randomUUID().toString() + "_" + file.getOriginalFilename();
            
            // 上傳并解析結(jié)果
            Response response = uploadManager.put(file.getBytes(), fileName, upToken);
            DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
            
            // 返回完整訪問(wèn)路徑
            return qiniuProperties.getDomain() + "/" + putRet.key;
        } catch (Exception e) {
            throw new RuntimeException("上傳失敗:" + e.getMessage());
        }
    }
}

??關(guān)鍵點(diǎn)??:

  • 使用 Region 指定存儲(chǔ)區(qū)域(如 Region.huadong() 對(duì)應(yīng)華東)。
  • 文件名通過(guò) UUID 生成唯一標(biāo)識(shí),保留原始后綴。

2. ??Controller 層??

創(chuàng)建接口接收前端上傳請(qǐng)求:

@RestController
@RequestMapping("/file")
public class FileController {
    @Autowired
    private QiniuUtils qiniuUtils;

    @PostMapping("/upload")
    public R uploadFile(@RequestParam("file") MultipartFile file) {
        String url = qiniuUtils.uploadFile(file);
        return R.success(url);
    }
}

??四、擴(kuò)展功能??

1. ??文件下載??

通過(guò)七牛云域名直接訪問(wèn)文件,或生成帶簽名的臨時(shí)下載鏈接:

public String generateDownloadUrl(String key) {
    Auth auth = Auth.create(accessKey, secretKey);
    return auth.privateDownloadUrl(domain + "/" + key, 3600); // 1小時(shí)有效
}

2. ??文件刪除??

使用 BucketManager 刪除指定文件:

public void deleteFile(String key) {
    Auth auth = Auth.create(accessKey, secretKey);
    BucketManager bucketManager = new BucketManager(auth, config);
    bucketManager.delete(bucketName, key);
}

3. ??文件列表查詢??

遍歷存儲(chǔ)空間中的文件(分頁(yè)處理):

public List<String> listFiles(String prefix, String marker) {
    Auth auth = Auth.create(accessKey, secretKey);
    BucketManager bucketManager = new BucketManager(auth, config);
    BucketManager.FileListIterator fileListIterator = 
        bucketManager.createFileListIterator(bucketName, prefix, 1000, marker);
    
    List<String> fileList = new ArrayList<>();
    while (fileListIterator.hasNext()) {
        FileInfo[] items = fileListIterator.next();
        for (FileInfo item : items) {
            fileList.add(item.key);
        }
    }
    return fileList;
}

??五、前端集成示例??

1. ??HTML 表單??

<form action="/file/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">上傳</button>
</form>

2. ??AJAX 上傳(jQuery)??

$.ajax({
    url: "/file/upload",
    type: "POST",
    data: new FormData($("#uploadForm")[0]),
    processData: false,
    contentType: false,
    success: function(res) {
        console.log("上傳成功:" + res.data);
    }
});

??六、注意事項(xiàng)??

??文件大小限制??

  • application.yml 中配置:
spring:
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 50MB

??異常處理??

  • 添加全局異常處理器,捕獲七牛云 SDK 拋出的 QiniuException

??安全性??

  • 敏感操作(如刪除)需添加權(quán)限校驗(yàn)。
  • 臨時(shí)下載鏈接建議設(shè)置短有效期。

通過(guò)以上步驟,即可實(shí)現(xiàn) Spring Boot 與七牛云存儲(chǔ)的完整對(duì)接,支持文件上傳、下載、刪除及列表查詢等核心功能。實(shí)際開(kāi)發(fā)中可根據(jù)需求擴(kuò)展圖片處理(如縮略圖)、水印添加等高級(jí)功能。

以上就是Spring Boot對(duì)接七牛云存儲(chǔ)的詳細(xì)步驟和流程的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot對(duì)接七牛云存儲(chǔ)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java StringBuffer類與StringBuilder類用法實(shí)例小結(jié)

    Java StringBuffer類與StringBuilder類用法實(shí)例小結(jié)

    這篇文章主要介紹了Java StringBuffer類與StringBuilder類用法,結(jié)合實(shí)例形式總結(jié)分析了Java StringBuffer類與StringBuilder類的功能、原理及添加、刪除、替換、截取等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-03-03
  • Spring Security在標(biāo)準(zhǔn)登錄表單中添加一個(gè)額外的字段

    Spring Security在標(biāo)準(zhǔn)登錄表單中添加一個(gè)額外的字段

    這篇文章主要介紹了Spring Security在標(biāo)準(zhǔn)登錄表單中添加一個(gè)額外的字段,我們將重點(diǎn)關(guān)注兩種不同的方法,以展示框架的多功能性以及我們可以使用它的靈活方式。 需要的朋友可以參考下
    2019-05-05
  • MybatisPlus使用queryWrapper如何實(shí)現(xiàn)復(fù)雜查詢

    MybatisPlus使用queryWrapper如何實(shí)現(xiàn)復(fù)雜查詢

    這篇文章主要介紹了MybatisPlus使用queryWrapper如何實(shí)現(xiàn)復(fù)雜查詢,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • SpringBoot+layui實(shí)現(xiàn)文件上傳功能

    SpringBoot+layui實(shí)現(xiàn)文件上傳功能

    Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。這篇文章主要介紹了SpringBoot+layui實(shí)現(xiàn)文件上傳,需要的朋友可以參考下
    2018-09-09
  • java 實(shí)現(xiàn)MD5加密算法的簡(jiǎn)單實(shí)例

    java 實(shí)現(xiàn)MD5加密算法的簡(jiǎn)單實(shí)例

    這篇文章主要介紹了java 實(shí)現(xiàn)MD5加密算法的簡(jiǎn)單實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家應(yīng)用這樣的加密算法,需要的朋友可以參考下
    2017-09-09
  • Java JFinal框架中實(shí)現(xiàn)添加定時(shí)任務(wù)功能詳解

    Java JFinal框架中實(shí)現(xiàn)添加定時(shí)任務(wù)功能詳解

    這篇文章主要為大家詳細(xì)介紹了如何在JFinal框架項(xiàng)目中添加定時(shí)任務(wù)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • 詳解Spring-bean的循環(huán)依賴以及解決方式

    詳解Spring-bean的循環(huán)依賴以及解決方式

    這篇文章主要介紹了詳解Spring-bean的循環(huán)依賴以及解決方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • JDK?+?Maven?+IDEA?安裝配置一條龍教程(2025?最新)

    JDK?+?Maven?+IDEA?安裝配置一條龍教程(2025?最新)

    這篇文章主要介紹了JDK?+?Maven?+IDEA安裝配置的相關(guān)資料,通過(guò)一個(gè)簡(jiǎn)單的HelloWorld示例展示了如何在IDEA中創(chuàng)建和運(yùn)行Java項(xiàng)目,文中給出了詳細(xì)的圖文教程,需要的朋友可以參考下
    2025-11-11
  • Java jpa外連接查詢join案例詳解

    Java jpa外連接查詢join案例詳解

    這篇文章主要介紹了Java jpa外連接查詢join案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • java實(shí)現(xiàn)俄羅斯方塊小程序

    java實(shí)現(xiàn)俄羅斯方塊小程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)俄羅斯方塊,在eclipse環(huán)境下編寫(xiě)的俄羅斯方塊小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評(píng)論

汝城县| 镇康县| 东乡| 曲麻莱县| 东莞市| 峨山| 北宁市| 青浦区| 武清区| 酒泉市| 鸡东县| 平定县| 谢通门县| 怀安县| 南华县| 兰考县| 鹤峰县| 湘潭县| 阿鲁科尔沁旗| 安宁市| 江源县| 贵定县| 石城县| 东港市| 龙山县| 叶城县| 呼伦贝尔市| 密云县| 淮阳县| 开鲁县| 孝感市| 长治县| 汤阴县| 融水| 什邡市| 社会| 全椒县| 台山市| 巴里| 高平市| 正蓝旗|