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

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

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

一. 對(duì)象存儲(chǔ)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ù)的處理,試想一下:大多數(shù)人都不會(huì)把自己電腦直接上當(dāng)本地服務(wù)器上直接上線項(xiàng)目吧,如果用云服務(wù)器訪問量大的話又有點(diǎn)占空間,也無法對(duì)圖片進(jìn)行加密,但我們用到OSS存儲(chǔ)文件就可以解決大部分問題了

二. 開通 OSS

第一步,登錄阿里云官網(wǎng),搜索“OSS”關(guān)鍵字,進(jìn)入 OSS 產(chǎn)品頁。
使用SpringBoot將圖片上傳至阿里云OSS

第二步,購(gòu)買套餐
使用SpringBoot將圖片上傳至阿里云OSS

新人好像有優(yōu)惠活動(dòng),筆者沒看到花錢買的覺得血虧(雖然只有幾塊)

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

第三步,進(jìn)入 OSS 管理控制臺(tái),點(diǎn)擊Bucket 列表,點(diǎn)擊創(chuàng)建 Bucket。
使用SpringBoot將圖片上傳至阿里云OSS

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

注意:讀寫權(quán)限為“公共讀”,也就是允許互聯(lián)網(wǎng)用戶訪問云空間上的圖片。

第四步:確認(rèn)就行

三、SpringBoot 整合 OSS 實(shí)現(xiàn)文件上傳

1. 在 pom.xml 文件中添加 OSS 的依賴。
<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.14.0</version>
</dependency>
2. 在 application.yml 文件中添加 OSS 配置項(xiàng)。
aliyun:
  oss:
    # oss對(duì)外服務(wù)的訪問域名
    endpoint: oss-cn-guangzhou.aliyuncs.com
    # 訪問身份驗(yàn)證中用到用戶標(biāo)識(shí)(填自己的)
    accessKeyId: LTAI5xxxxxxxxxx
    # 用戶用于加密簽名字符串和oss用來驗(yàn)證簽名字符串的密鑰(填自己的)
    accessKeySecret: xxxxxxxx
    # oss的存儲(chǔ)空間
    bucketName: baridhu
    # 上傳文件大小(M)
    maxSize: 3
    # 上傳文件夾路徑前綴
    dir:
      prefix: helloworld/
補(bǔ)充:如何獲取自己的用戶標(biāo)識(shí)和密鑰

1. 把鼠標(biāo)移動(dòng)到自己頭像位置會(huì)出懸浮框,我們選擇AccessKey管理
使用SpringBoot將圖片上傳至阿里云OSS
2. 創(chuàng)建AccessKey
使用SpringBoot將圖片上傳至阿里云OSS
使用SpringBoot將圖片上傳至阿里云OSS
剩下的按著操作就行了,不再贅敘了

3. 創(chuàng)建配置類OssClientConfig.java
@Configuration
public class OssClientConfig {
    @Value("${aliyun.oss.endpoint}")
    String endpoint ;
    @Value("${aliyun.oss.accessKeyId}")
    String accessKeyId ;
    @Value("${aliyun.oss.accessKeySecret}")
    String accessKeySecret;

    @Bean
    public OSSClient createOssClient() {
        return (OSSClient)new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    }
}

其功能是實(shí)現(xiàn)圖片上傳至OSS,其內(nèi)置操作有興趣的可以自己看源碼

4. 文件上傳接口

/**
 * @author hj(BaridHu)
 */

@Slf4j
@Api(value = "file", tags = {"文件控制層"})
@RequestMapping("file")
@RestController
@LoginClassAnnotation
public class FileController {

    @Value("${aliyun.oss.maxSize}")
    private int maxSize;

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

    @Value("${aliyun.oss.dir.prefix}")
    private String dirPrefix;

    @Resource
    private OSSClient ossClient;

    @Resource
    private FileService fileService;

    @ApiOperation(value = "文件上傳OSS接口")
    @PostMapping("upload")
    public RestResponse uploadToOSS(@ApiParam(value = "文件名", required = true) @RequestParam("photo") MultipartFile file) {
        String url = "";
        try {
            InputStream inputStream = file.getInputStream();
            String objectName =  getObjectName(file);
            // 創(chuàng)建PutObject請(qǐng)求。
            ossClient.putObject(bucketName, objectName, inputStream);
            url = formatPath(objectName);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return RestResponse.ok(url);
    }

    private String getObjectName(MultipartFile file) {
        // 文件后綴
        String suffixName = Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf("."));
        String fileName = SpringContextUtils.getContext().getBean(SnowFlakeUtils.class).nextId() + suffixName;
        // 文件類型:1-圖片,2-音頻,3-視頻
        String fileType = FileUtils.getFileType(suffixName);
        // 完整路徑
        String objectName = "";
        switch (fileType) {
            case "1":
                objectName = dirPrefix + "images/" + DateUtil.today() + "/" + fileName;
                break;
            case "2":

                objectName = dirPrefix + "audio/" + DateUtil.today() + "/" + fileName;
                break;
            case "3":
                objectName = dirPrefix +"videos/" + DateUtil.today() + "/" + fileName;
                break;
            default:
                break;
        }
        return objectName;
    }

    private String formatPath(String objectName){
        return "https://" + bucketName + "." + ossClient.getEndpoint().getHost() + "/" + objectName;
    }
}

補(bǔ)充1: SpringContextUtils.getContext().getBean(SnowFlakeUtils.class).nextId() 是利用雪花算法生成全局唯一的ID值,源于Twitter,能很好的保證ID值不重復(fù),有興趣的自己可以研究研究,有時(shí)間我也會(huì)出一期關(guān)于雪花算法的文章,這里大家可以使用UUID來代替

String fileName = UUID.randomUUID().toString() + suffixName;

補(bǔ)充2: FileUtils工具類

/**
 * @author hj(BaridHu)
 */
 
@Component
public class FileUtils {

    public static final String TYPE_JPG = ".jpg";

    public static final String TYPE_GIF = ".gif";

    public static final String TYPE_PNG = ".png";

    public static final String TYPE_BMP = ".bmp";

    public static final String TYPE_MP3 = ".mp3";

    public static final String TYPE_WAV = ".wav";

    public static final String TYPE_M4A = ".m4a";

    public static final String TYPE_MP4 = ".mp4";

    public static final String TYPE_UNKNOWN = "unknown";


    public static boolean delFile(File file) {
        if (file.exists()) {
            String name = file.getName();
            file.delete();
            System.out.println("文件 [" + name + "] 已經(jīng)刪除!");
            return true;
        }
        return false;
    }

    /**
     * 獲取文件類型
     * type:1-圖片,2-音頻,3-視頻
     *
     * @return {@link String}
     */
    public static String getFileType(String suffixName) {
        String type = null;
        switch (suffixName) {
            case TYPE_JPG:
            case TYPE_GIF:
            case TYPE_PNG:
            case TYPE_BMP:
                type = "1";
                break;
            case TYPE_MP3:
            case TYPE_WAV:
            case TYPE_M4A:
                type = "2";
                break;
            case TYPE_MP4:
                type = "3";
                break;
            default:
                break;
        }
        return type;
    }

}

4. 使用Swagger測(cè)試

使用SpringBoot將圖片上傳至阿里云OSS
可以看到已經(jīng)上傳至對(duì)象存儲(chǔ)桶了
使用SpringBoot將圖片上傳至阿里云OSS如何下載呢?
將返回的URL在瀏覽器網(wǎng)址輸入欄輸入就行

這篇文章就先介紹這么多,后面會(huì)更新拓展!如果你覺得這篇文章對(duì)你有幫助的話,請(qǐng)點(diǎn)贊和收藏哦!如果能點(diǎn)撥小小的關(guān)注就更好哦!
使用SpringBoot將圖片上傳至阿里云OSS文章來源地址http://www.zghlxwxcb.cn/news/detail-455155.html

到了這里,關(guān)于使用SpringBoot將圖片上傳至阿里云OSS的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • Vue3 - 超詳細(xì) “純前端“ 將文件上傳到阿里云 OSS 對(duì)象存儲(chǔ),最新阿里云 SDK 上傳音頻、視頻、圖片、文檔、office 等(保姆級(jí)詳細(xì)示例源碼教程,每行代碼都有注釋小白一看就懂)

    Vue3 - 超詳細(xì) “純前端“ 將文件上傳到阿里云 OSS 對(duì)象存儲(chǔ),最新阿里云 SDK 上傳音頻、視頻、圖片、文檔、office 等(保姆級(jí)詳細(xì)示例源碼教程,每行代碼都有注釋小白一看就懂)

    網(wǎng)上的教程大部分都過時(shí)了,各種不規(guī)范的寫法五花八門(各種文件引入關(guān)系賊難改),對(duì)于新手來說真的無從下手。 本文站在新手的角度, 在 vue3 項(xiàng)目開發(fā)中,超詳細(xì) “純前端(無需后端)” 上傳各種圖片圖像、文檔、音視頻文件、壓縮包到阿里云oss存儲(chǔ),利用 SDK 前端

    2024年02月03日
    瀏覽(96)
  • 阿里云oss對(duì)象存儲(chǔ)上傳照片并返回照片路徑

    阿里云oss對(duì)象存儲(chǔ)上傳照片并返回照片路徑

    安裝javaJDk 依賴 jdk1.8(只用一個(gè)依賴即可) 使用的是Java 9及以上的版本,則需要添加jaxb相關(guān)依賴。 程序:

    2024年02月13日
    瀏覽(24)
  • JAVA通過阿里云OSS存儲(chǔ)實(shí)現(xiàn)圖片上傳功能

    首先我們需要在阿里云注冊(cè)賬號(hào),實(shí)名認(rèn)證后開通OSS功能,點(diǎn)擊進(jìn)入OSS功能的管理平臺(tái) 進(jìn)入概覽頁面后,點(diǎn)擊Bucket列表,創(chuàng)建一個(gè)Bucket(相當(dāng)于一個(gè)存放文件的文件夾) ?關(guān)鍵是要獲得下面幾個(gè)關(guān)鍵的信息,只有擁有這些信息才能連接上這個(gè)Bucket進(jìn)行操作: 添加對(duì)應(yīng)依賴 ?

    2024年02月05日
    瀏覽(26)
  • 阿里云對(duì)象存儲(chǔ)oss-文件上傳過程詳解(兩種方式)

    阿里云對(duì)象存儲(chǔ)oss-文件上傳過程詳解(兩種方式)

    問題:需要配置系統(tǒng)變量才能夠使用 以win11為例 (1)打開設(shè)置 (2)選擇----系統(tǒng)信息 (3)選擇----高級(jí)系統(tǒng)設(shè)置 (4)選擇----環(huán)境變量 (5)選擇----系統(tǒng)變量這欄-----新建 (6)在“變量名”輸入框中輸入 OSS_ACCESS_KEY_ID,在“變量值”輸入框中輸入你的Access Key ID。再次點(diǎn)擊“新建”按鈕,輸入

    2024年02月10日
    瀏覽(100)
  • 阿里云OSS存儲(chǔ)圖片在上傳的時(shí)候設(shè)置過期時(shí)間

    第一種方法:在上傳文件時(shí)設(shè)置過期時(shí)間 在使用 putObject 方法上傳文件時(shí),可以通過設(shè)置 x-oss-expires 和 x-oss-delete-after 頭部來設(shè)定文件的過期時(shí)間。 以下是示例代碼: 上述代碼中,我們?cè)?headers 中添加了 x-oss-expires 和 x-oss-delete-after 頭部來設(shè)定文件的過期時(shí)間,其中 x-oss-ex

    2024年02月07日
    瀏覽(35)
  • Unity 上傳文件到阿里云 對(duì)象存儲(chǔ)OSS服務(wù)器

    Unity 上傳文件到阿里云 對(duì)象存儲(chǔ)OSS服務(wù)器

    首先登錄阿里云 免費(fèi)試用–對(duì)象存儲(chǔ)OSS --點(diǎn)擊立即試用,可以有三個(gè)月的免費(fèi)試用 創(chuàng)建Buket 新建AccessKey ,新建完成后,會(huì)有一個(gè)CSV文件,下載下來,里面有Key ,代碼中需要用到 下載SDK 雙擊打開 sln文件,使用VS打開,右鍵項(xiàng)目–屬性,修改程序集名字,然后點(diǎn)擊生成–生成解

    2024年02月13日
    瀏覽(102)
  • SpringBoot集成-阿里云對(duì)象存儲(chǔ)OSS

    SpringBoot集成-阿里云對(duì)象存儲(chǔ)OSS

    阿里云對(duì)象存儲(chǔ) OSS (Object Storage Service),是一款海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù)。使用 OSS,你可以通過網(wǎng)絡(luò)隨時(shí)存儲(chǔ)和調(diào)用包括文本、圖片、音頻和視頻等在內(nèi)的各種文件。 登錄阿里云后進(jìn)入阿里云控制臺(tái)首頁選擇 對(duì)象存儲(chǔ) OSS 服務(wù) 開通服務(wù) 創(chuàng)建Bucket 填寫

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

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

    阿里云對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,簡(jiǎn)稱OSS)為您提供基于網(wǎng)絡(luò)的數(shù)據(jù)存取服務(wù)。使用OSS,您可以通過網(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)
  • 【業(yè)務(wù)功能篇77】微服務(wù)-OSS對(duì)象存儲(chǔ)-上傳下載圖片

    【業(yè)務(wù)功能篇77】微服務(wù)-OSS對(duì)象存儲(chǔ)-上傳下載圖片

    3. 圖片管理 文件存儲(chǔ)的幾種方式 單體架構(gòu)可以直接把圖片存儲(chǔ)在服務(wù)器中 但是在分布式環(huán)境下面直接存儲(chǔ)在WEB服務(wù)器中的方式就不可取了,這時(shí)我們需要搭建獨(dú)立的文件存儲(chǔ)服務(wù)器。 3.1 開通阿里云服務(wù) 針對(duì)本系統(tǒng)中的相關(guān)的文件,圖片,文本等統(tǒng)一的交給云服務(wù)器管理。

    2024年02月11日
    瀏覽(33)
  • SpringBoot整合阿里云Oss實(shí)現(xiàn)文件圖片上傳

    SpringBoot整合阿里云Oss實(shí)現(xiàn)文件圖片上傳

    目錄 1. 阿里云Oss注冊(cè)使用 2. 項(xiàng)目中使用 2.1 引入依賴以及插件 2.2 編寫配置文件application.properties 2.3 創(chuàng)建常量類,獲取配置信息 ?2.4 serviceImpl中實(shí)現(xiàn)邏輯 ? ? ? ? ? ?

    2024年02月08日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包