OSS提供了S3 API的相容性,可以讓您的數據從Amazon S3無縫遷移到阿里雲OSS上。從Amazon S3遷移到OSS後,您仍然可以使用S3 API訪問OSS,僅需要對S3的客戶端應用進行如下改動:
- 獲取OSS主帳號或子帳號的AccessKeyId和AccessKeySecret,並在您使用的客戶端和SDK中配置您申請的AccessKeyId與AccessKeySecret。
- 設定客戶端串連的endpoint為OSS endpoint。OSS endpoint列表請參見訪問網域名稱和資料中心。
遷移步驟
從第三方儲存遷移到OSS的具體操作步驟,請您參見使用OssImport遷移數據。
遷移後用S3 API訪問OSS
從S3遷移到OSS後,您使用S3 API訪問OSS時,需要注意以下幾點:
-
Path style和Virtual hosted style
Virtual hosted style是指將Bucket放入host header的訪問方式。OSS基於安全考慮,僅支援virtual hosted訪問方式,所以在S3到OSS遷移後,客戶端應用需要進行相應設定。部分S3工具預設使用Path style,也需要進行相應配置,否則可能導致OSS報錯禁止訪問。
-
OSS對許可權的定義與S3不完全一致,遷移後如有需要,可對許可權進行相應調整。二者的主要區別可參考下表。
说明 - 更詳細的區別請參見ACL驗證流程。
- OSS僅支援S3中的私有、公共讀和公共讀寫三種ACL模式。
對象 Amazon S3許可權 Amazon S3 阿里雲OSS Bucket READ 擁有Bucket的list許可權 對於Bucket下的所有Object,如果某Object沒有設定Object許可權,則該Object可讀 WRITE Bucket下的Object可寫入或覆蓋 - 對於Bucket下不存在的Object,可寫入
- 對於Bucket下存在的Object,如果該Object沒有設定Object許可權,則該Object可被覆蓋
- 可以initiate multipart upload
READ_ACP 讀取Bucket ACL 讀取Bucket ACL,僅Bucket owner和授權子帳號擁有此許可權 WRITE_ACP 設定Bucket ACL 設定Bucket ACL,僅Bucket owner和授權子帳號擁有此許可權 Object READ Object可讀 Object可讀 WRITE N/A Object可以被覆蓋 READ_ACP 讀取Object ACL 讀取Object ACL,僅Bucket owner和授權子帳號擁有此許可權 WRITE_ACP 設定Object ACL 設定Object ACL,僅Bucket owner和授權子帳號擁有此許可權 - 儲存類型
OSS支援標準(Standard)、低頻訪問(IA)和Archive Storage(Archive)三種儲存類型,分別對應Amazon S3中的STANDARD、STANDARD_IA和GLACIER。
與Amazon S3不同的是,OSS不支援在上傳object時直接指定儲存類型,object的儲存類型由bucket的儲存類型指定。OSS支援標準、低頻訪問和歸檔三種Bucket類型,Object的儲存類型還可以通過lifecycle進行轉換。
Archive Storage類型的object在讀取之前,要先使用Restore請求進行解凍操作。與S3不同,OSS會忽略S3 API中的解凍天數設定,解凍狀態預設持續1天,用戶可以延長到最多7天,之後,Object又回到初始時的冷凍狀態。
- ETag
-
對於PUT方式上傳的Object,OSS Object的ETag與Amazon S3在大小寫上有區別。OSS為大寫,而S3為小寫。如果客戶端有關於ETag的校驗,請忽略大小寫。
-
對於分區上傳的Object,OSS的ETag計算方式與S3不同。
-
相容的S3 API
- Bucket操作:
- Delete Bucket
- Get Bucket (list objects)
- Get Bucket ACL
- Get Bucket lifecycle
- Get Bucket location
- Get Bucket logging
- Head Bucket
- Put Bucket
- Put Bucket ACL
- Put Bucket lifecycle
- Put Bucket logging
- Object操作:
- Delete Object
- Delete Objects
- Get Object
- Get Object ACL
- Head Object
- Post Object
- Put Object
- Put Object Copy
- Put Object ACL
- Multipart操作:
- Abort Multipart Upload
- Complete Multipart Upload
- Initiate Multipart Upload
- List Parts
- Upload Part
- Upload Part Copy