前言: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、配置規則)