簡介
阿里雲對象存儲服務(Object Storage Service,簡稱 OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲存儲服務。
使用流程
名詞解釋
Endpoint(訪問域名)
AccessKeyId(阿里雲API的密鑰)
AccessKeySecret (與AccessKeyId對應)
Bucket(存儲空間)
OSS權限控制
- 賬號級別權限
- 阿里雲賬號AccessKey
- RAM子賬號AccessKey(避免泄露主賬號的AccessKey,建議使用)
- STS賬號AccessKey
- Bucket級別權限
- public-read-write 公共讀寫
- public-read 公共讀,私有寫
- private 私有讀寫
- Object級別權限(優先級高於Bucket)
- public-read-write 公共讀寫
- public-read 公共讀,私有寫
- private 私有讀寫
- default 默認權限 繼承bucket
- public-read-write 公共讀寫
個人總結
如果是私有權限的文件,客戶端該如何訪問?
1.在Header中包含簽名
2.在URL中包含簽名
注:如果多次請求該方法,每次返回的url都不一樣
例子:https://tts-oss-public.oss-cn-shenzhen.aliyuncs.com/test/f3a4a566197744a880383135bee0fccd1234.png?Expires=1524566570&OSSAccessKeyId=TMP.AQFXJvAkVfBaSwWi5a68tvgbrUVyzOH8_6w-YiOdGDYGxUhaBRowDx0ospaoAAAwLAIUNR8PTGbizu3ii_gFls2XEjyAdxgCFCO_85hsDtcnuzhKfXyb3ob4knFV&Signature=tb7w7K%2F%2FiKA4fYPHGieDOh99zUk%3D
- OSS文件URL構成解釋?
https://tts-oss-public.oss-cn-shenzhen.aliyuncs.com/test/123.png
tts-oss-public:bucket名稱,自定義,保存后不可更改,全局唯一
oss-cn-shenzhen.aliyuncs.com:地域域名,在創建 Bucket 的時候指定的,指定之后不允許更改
test:文件夾名,自定義,如果創建時帶有 / 會自動創建
123.png:文件名
- bucket設置為私有,能否防止惡意下載?
不能防止,一但對應資源的簽名url對外暴露,在簽名url有效期內就可以通過簽名url下載對應的資源;
- bucket私有,獲取到的資源鏈接是否具有時效性?
有時效性,一但過期就不可被訪問
- 獲取到的資源鏈接是否可以永久有效?
將bucket改為公共讀/公共讀寫,獲取到的object鏈接一般都是永久有效的,但是如果bucket私有要獲取永久有效的鏈接,
不支持也沒意義(私有本身就是為了保證數據安全性,一定期限內可訪問,一定程度上防止惡意下載,鏈接有效時間過長也就失去了對應的意義)。
- 補充
OSSClient是OSS服務的Java客戶端,它為調用者提供一系列與OSS進行交互的接口,用於管理、操作存儲空間(Bucket)和文件(Object)等OSS資源。
-
-
// 創建OSSClient實例 OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
-
同一個存儲空間的內部是扁平的,沒有文件系統的目錄等概念,所有的對象都直接隸屬於其對應的存儲空間。