天天看點

OSS 阿裡雲存儲操作執行個體以及錯誤案例

前言:OSS 說白了就是把你本地的資料放到阿裡雲平台中,讓其他人可以通過連結通路。

如果還不知道如何建立OSS服務,可以先閱讀這篇文章

連結: OSS入門級教程(開通、建立Bucket、配置規則)

第一步: 建立一個maven工程

pom配置資訊:

<dependencies>
       <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>2.8.2</version>
        </dependency>
    </dependencies>      

把包導好

需要下載下傳包的官網上也有,實在找不到可以私信我。

第二步:在java工程目錄下直接建立一個測試類OssTestDemo

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClient;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.UUID;

public class OssTestDemo {
    public static void main(String[] args) {
        //擷取阿裡雲OSS 的驗證
        //錯誤點,注意endpoint 中不需要帶有bucket的名稱,會出現The specified bucket is not valid 翻譯指定桶不合法
        //解決方案删除bucketName即可解除異常
        //問題2.0 隻能下載下傳觀看上傳的檔案
        String endpoint = "oss-cn-shenzhen.aliyuncs.com" ;//這裡有個易錯點,看我上面的注釋照着做即可,當時這個問題困擾了挺久的,後來仔細檢視官方文檔才知道問題的所在。
        String accessKeyId = "accessKeyId";//注冊好了OSS服務便可以檢視到這個資訊
        String accessKeySecret ="accessKeySecret ";//同上注釋
        String bucketName = "pixiu2020";
        String fileName = UUID.randomUUID()+"m2.jpg";
        //建立OSSClient執行個體
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        //上傳檔案流
        InputStream inputStream =null;
        try {
            inputStream = new FileInputStream("e:/m2.jpg");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        ossClient.putObject(bucketName,fileName,inputStream);
        //擷取連接配接
//        System.out.println("https://"+bucketName +".oss-cn-shenzhen.aliyuncs.com/"+fileName);
        //關閉OSS服務
        ossClient.shutdown();
    }
}      

注意點:

問題1 出現The specified bucket is not valid

//這裡有個易錯點,看我下面的注釋照着做即可,當時這個問題困擾了挺久的,後來仔細檢視官方文檔才知道問題的所在。

//錯誤點,注意endpoint中不需要帶有bucket的名稱,會出現The specified bucket is not valid 翻譯指定桶不合法

//解決方案删除bucketName即可解除異常

>String endpoint = "oss-cn-shenzhen.aliyuncs.com" ;      
問題2 隻能下載下傳觀看上傳的檔案

在本案例剛開始上傳的圖檔名稱是m2.png,運作發現圖檔上傳成功,複制連結至就行通路會自動下載下傳圖檔,不能直接通路圖檔。查閱相關文檔發現把圖檔名改為m2.jpg,再次上傳測試圖檔可以直接通路了。

思考一下

這裡隻是一個非常小的Demo,在實際工程可以把

​OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);​

這段代碼以及方法中的參數進行優化,比如在SSM中可以寫進XML配置中,直接調用。

其他方法發揮自己腦洞…

入門篇

上一篇: OSS入門級教程(開通、建立Bucket、配置規則)

進階篇

下一篇: OSS+SpringBoot商城項目深度解析OSS (進階篇)

更多内容詳見微信公衆号:Python研究所