亞馬遜云存儲SDK手冊_第1頁
亞馬遜云存儲SDK手冊_第2頁
亞馬遜云存儲SDK手冊_第3頁
亞馬遜云存儲SDK手冊_第4頁
亞馬遜云存儲SDK手冊_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Amazon S3 存儲類別 Amazon S3 提供一系列用于不同用例的存儲類別。這包括用于頻繁訪問數據的通用存儲的 Amazon S3 Standard、用于長期但非頻繁訪問數據的 Amazon S3 Standard Infrequent Access,以及用于長期檔案的 Amazon Glacier。Amazon S3 還提供可配置生命周期政策,以便在您數據的生命周期內對其進行管理。一旦設置了政策,您的數據便會自動遷移到最合適的存儲類別,而您的應用程序無需任何更改。開始免費使用 AWS創建免費賬戶 AWS 免費套餐包括為期一年,每月 750 小時 Linux 和 Windows t2.

2、micro 實例的使用時間。要一直享受免費套餐,您只能使用 EC2 微型實例。查看 AWS 免費套餐詳細信息 »通用 Amazon S3 Standard 針對頻繁訪問數據,Amazon S3 Standard 提供較高的持久性、可用性和性能對象存儲。由于它帶來較低的延遲和較高的吞吐量,Standard 非常適合各種用例,包括云應用程序、動態網站、內容分配、移動和游戲應用程序,以及大數據分析。生命周期管理提供可配置的政策,可將對象自動遷移到最合適 的存儲類別。重要功能:· 較低的延遲和較高的吞吐量性能· 經過設計,可為對象實現 99.999999999% 的持久性

3、· 經過設計,可在指定年度內實現 99.99% 的可用性· 以 Amazon S3 服務等級協議作為后盾,以實現可用性。· 支持對轉移中的數據和靜態數據進行 SSL 加密· 對象自動遷移的生命周期管理Infrequent Access Amazon S3 Standard Infrequent Access Amazon S3 Standard Infrequent Access (Standard IA) 是 Amazon S3 存儲類別,用于不頻繁訪問但在需要時也要求快速訪問的數據。Standard IA 提供較高的持久性、吞吐量和較低的 Amazo

4、n S3 Standard 延遲,并且每 GB 的存儲價格和檢索費用都較低。成本較低且性能出色使得 Standard IA 成為長期存儲和備份的理想選擇,也非常適用于災難恢復的數據存儲。Standard IA 存儲類別被設置在對象級別,并可在相同的存儲桶中作為 Standard 數據存在,從而讓您可以使用生命周期政策在存儲類別間自動轉移對象,無需更改任何應用程序。重要功能:· 和 Standard 相同的較低延遲及高吞吐量性能· 經過設計,可為對象實現 99.999999999% 的持久性· 經過設計,可在指定年度內實現 99.9% 的可用性· 以 Am

5、azon S3 服務等級協議作為后盾,以實現可用性。· 支持對轉移中的數據和靜態數據進行 SSL 加密· 對象自動遷移的生命周期管理存檔 Amazon Glacier Amazon Glacier 是一種安全、持久且成本極低的存儲服務,適用于數據存檔。您可以放心存儲任何量的數據 成本與本地解決方案相當,甚至更低。為了保持低成本,Amazon Glacier 已針對極少訪問的數據進行優化,適合檢索時間需要數小時的情況。針對存儲類別間的自動遷移,Amazon Glacier 支持生命周期政策。請參閱 Amazon Glacier 頁面獲取更多詳情。 重要功能:· 經過

6、設計,可為對象實現 99.999999999% 的持久性· 支持對轉移中的數據和靜態數據進行 SSL 加密· 文件庫鎖定功能通過可鎖定的政策來執行合規性· 設計的成本極低,非常適合長期存檔· 對象自動遷移的生命周期管理 標準Standard IAAmazon Glacier設計可實現持久性99.999999999%99.999999999%99.999999999%設計可實現可用性99.99%99.9%不適用可用性 SLA99.9%99%不適用最小對象大小不適用128KB*不適用最低存儲持續時間不適用30 天90 天檢索費用不適用每檢索 1GB

7、每檢索 1GB*首字節延遲毫秒毫秒4 小時存儲類別對象級別對象級別對象級別生命周期傳輸是是是* Standard IA 的最小對象大小為 128KB。 較小的對象將按 128KB 的存儲量計費。* 您每月可以免費取回月平均 Glacier 存儲的 5%(每日量按比例計算)。如果您一個月內要取回的數據量超過該限額,則需要按最低價每 GB 0.01 USD 起支付取回費用。了解更多。低冗余存儲 (RRS) 是 Amazon S3 的一個存儲選項,使客戶能夠通過以低于 Amazon S3 標準存儲的冗余級別來存儲非關鍵性的可再生數據,從而降低成本。有關低冗余存儲 (RRS) 類的信息,請參

8、閱 S3 低冗余詳細信息頁面。使用服務器端加密保護數據服 務器端加密關乎靜態數據加密,即 Amazon S3 在將您的數據寫入數據中心內的磁盤時會在對象級別上加密這些數據,并在您訪問這些數據時為您解密這些數據。只要您驗證了您的請求并且擁有訪問權限,您訪問 加密和未加密數據元的方式就沒有區別。例如,如果您使用預簽名的 URL 來共享您的對象,那么對于加密和解密對象,該 URL 的工作方式是相同的。您有三個選項,具體取決于您選擇如何管理加密密鑰:· 使用具有 Amazon S3 托管密鑰的服務器端加密 (SSE-S3) 利用多因素強加密來使用唯一密鑰加密每個對象。作為額外的保護,它將使用

9、定期輪換的主密鑰加密密鑰本身。Amazon S3 服務器端加密使用可用的最強數據塊密碼之一(即 256 位高級加密標準 (AES-256))來加密您的數據。有關更多信息,請參閱 使用具有 Amazon S3 托管加密密鑰的服務器端加密 (SSE-S3) 保護數據。· 使用具有 AWS KMS 托管密鑰的服務器端加密 (SSE-KMS) 與 SSE-S3 類似,但使用此服務有一些額外好處以及一些額外費用。使用信封密鑰(即,保護數據的加密密鑰的密鑰)需要單獨的權限,信封密鑰可進一步防止未經授權地訪問 S3 中的對象。SSE-KMS 還提供您的密鑰的使用時間和使用者的審核跟蹤。此外,您可以

10、選擇自己創建和管理加密密鑰,或使用對您、您所使用的服務和您的工作區域來說具有唯一性的默認 密鑰。有關更多信息,請參閱 使用具有 AWS KMS 托管密鑰的服務器端加密 (SSE-KMS) 保護數據。· 將服務器端加密與客戶提供的密鑰一起使用 (SSE-C) - 您管理加密密鑰,而 Amazon S3 管理加密(在 Amazon S3 對磁盤進行寫入時)和解密(在您訪問您的對象時)。有關更多信息,請參閱 通過使用客戶提供的加密密鑰的服務器端加密 (SSE-C) 保護數據。Note在您列出存儲桶中的對象時,列表 API 會返回所有對象的列表(無論對象是否加密)。跨區域復制跨區域復制是一項

11、存儲桶級別功能,該功能支持跨不同 AWS 區域中的存儲桶自動、異步地復制對象。要激活此功能,請向源存儲桶添加 replication 配置。在該配置中,您需提供諸如要將對象復制到的目標存儲桶等信息。您可以請求 Amazon S3 復制所有對象或具有特定鍵名稱前綴的對象子集。例如,您可以將跨區域復制配置為僅復制具有鍵名稱前綴 Tax/ 的對象。這會使 Amazon S3 復制具有 Tax/doc1 或 Tax/doc2 等鍵的對象,但不復制具有 Legal/doc3 鍵的對象。 目 標存儲桶中的對象副本是源存儲桶中對象的精確副本。它們具有相同鍵名稱和相同元數據 - 例如,創建時間、擁有者、用戶定

12、義的元數據、版本 ID、ACL 和存儲類別(假設您未在復制配置中為對象副本明確指定不同的存儲類別)。Amazon S3 使用 SSL 加密跨 AWS 區域傳輸中的所有數據。您也可以選擇性地指定 Amazon S3 創建對象副本時要使用的存儲類別(如果您不指定此存儲類別,Amazon S3 將采用源對象的存儲類別)。使用案例方案您可能基于各種原因對存儲桶配置跨區域復制,這些原因包括:· 合規性要求 雖然 Amazon S3 默認跨多個地理位置較遠的可用區存儲數據,但是合規性要求所規定的數據存儲距離可能更遠。通過跨區域復制,可以在遠距離 AWS 區域之間復制數據以滿足這些合規性要求。 &

13、#183; 最大限度減少延遲 客戶處于兩個地理位置。為了最大限度縮短訪問對象時的延遲,可以在地理位置與用戶較近的 AWS 區域中維護對象副本。· 操作原因 您在兩個不同區域中具有分析同一組對象的計算集群。您可能選擇在這些區域中維護對象副本。或者,如果有成本考慮,您也可以引導 Amazon S3 對對象副本使用 STANDARD_IA 存儲類別。有關成本考慮的更多信息,請參閱 Amazon S3 定價。要求跨區域復制的要求:· 源存儲桶和目標存儲桶必須啟用版本控制。有關版本控制的更多信息,請參閱使用版本控制。· 源存儲桶和目標存儲桶必須處于不同的 AWS 區域。有關

14、可以在其中創建存儲桶的 AWS 區域的列表,請參閱 AWS General Reference 中的區域和終端節點。· 源存儲桶中的對象只能復制到一個目標存儲桶。· Amazon S3 必須有權代表您將對象從源存儲桶復制到目標存儲桶。 您可以通過創建 Amazon S3 可以代入的 IAM 角色來授予這些權限。必須向此角色授予執行 Amazon S3 操作的權限,以便 Amazon S3 在代入此角色時可以執行復制任務。有關 IAM 角色的更多信息,請參閱創建 IAM 角色。· 如果源存儲桶擁有者也是對象的擁有者,則其擁有復制對象的完全權限。否則,源存儲桶擁有者必

15、須具有執行 Amazon S3 操作 s3:GetObjectVersion 和 s3:GetObjectVersionACL 的權限才能讀取對象和對象 ACL。有關 Amazon S3 操作的更多信息,請參閱在策略中指定權限。有關資源和所有權的更多信息,請參見 Amazon S3 資源。· 如果在跨賬戶方案(其中的源存儲桶和目標存儲桶由不同的 AWS 賬戶擁有)中設置跨區域復制,則源存儲桶擁有者必須有權在目標存儲桶中復制對象。目標存儲桶擁有者需要通過存儲桶策略授予這些權限。有關示例,請參閱演練 2:配置跨區域復制(其中源存儲桶和目標存儲桶由不同 AWS 賬戶擁有)。復制和不復制的內

16、容本部分說明在對存儲桶添加復制配置之后,Amazon S3 會復制以及不復制的內容。復制的內容Amazon S3 會復制以下內容:· 添加復制配置之后創建的任何新對象(除了下一部分中介紹的對象)。· 使用 Amazon S3 托管加密密鑰通過服務器端加密創建的對象。還將使用 Amazon S3 托管加密密鑰通過服務器端加密對對象的復制副本進行加密。 · Amazon S3 僅復制存儲桶擁有者有權讀取對象和 ACL 的源存儲桶中的對象。有關資源所有權的更多信息,請參見關于資源擁有者。· 所有對象 ACL 更新都會進行復制,不過在 Amazon S3 使兩者

17、同步之前可能會存在一些延遲。這僅適用于在向存儲桶添加復制配置之后創建的對象。刪除操作和跨區域復制如果從源存儲桶中刪除對象,則跨區域復制行為如下所示:· 如果進行 DELETE 請求而不指定對象版本 ID,則 Amazon S3 會添加刪除標記,而跨區域復制會將該標記復制到目標存儲桶。有關版本控制和刪除標記的更多信息,請參見使用版本控制。· 如果 DELETE 請求指定了要刪除的特定對象版本 ID,則 Amazon S3 會在源存儲桶中刪除該對象版本,但不會在目標存儲桶中復制刪除操作(換句話說,它不會從目標存儲桶中刪除同一對象版本)。此行為可防止惡意刪除數據。 如何使用適用于

18、 Java 的 AWS 開發工具包設置跨區域復制源 存儲桶和目標存儲桶由兩個不同的 AWS 賬戶擁有時,可以使用 AWS CLI 或一個 AWS 開發工具包對源存儲桶添加復制配置。不能使用控制臺添加復制配置,因為在對源存儲桶添加復制配置時,控制臺不提供指定由另一個 AWS 賬戶擁有的目標存儲桶的方法。有關更多信息,請參見 如何設置跨區域復制。以下適用于 Java 的 AWS 開發工具包代碼示例首先向存儲桶添加復制配置,然后檢索該配置。您需要通過提供存儲桶名稱和 IAM 角色 ARN 來更新代碼。有關如何創建和測試有效示例的說明,請參閱 測試 Java 代碼示例。import java.io.I

19、OException;import java.util.HashMap;import java.util.Map;import com.amazonaws.AmazonClientException;import com.amazonaws.AmazonServiceException;import file.ProfileCredentialsProvider;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3Client;impor

20、t com.amazonaws.services.s3.model.BucketReplicationConfiguration;import com.amazonaws.services.s3.model.ReplicationDestinationConfig;import com.amazonaws.services.s3.model.ReplicationRule;import com.amazonaws.services.s3.model.ReplicationRuleStatus;public class CrossRegionReplicationComplete private

21、 static String sourceBucketName = "source-bucket" private static String roleARN = "arn:aws:iam:account-id:role/role-name" private static String destinationBucketArn = "arn:aws:s3:destination-bucket" public static void main(String args) throws IOException AmazonS3 s3Clie

22、nt = new AmazonS3Client(new ProfileCredentialsProvider(); try Map<String, ReplicationRule> replicationRules = new HashMap<String, ReplicationRule>(); replicationRules.put( "a-sample-rule-id", new ReplicationRule() .withPrefix("Tax/") .withStatus(ReplicationRuleStatus.

23、Enabled) .withDestinationConfig( new ReplicationDestinationConfig() .withBucketARN(destinationBucketArn) .withStorageClass(StorageClass.Standard_Infrequently_Accessed) ) ); s3Client.setBucketReplicationConfiguration( sourceBucketName, new BucketReplicationConfiguration() .withRoleARN(roleARN) .withR

24、ules(replicationRules) ); BucketReplicationConfiguration replicationConfig = s3Client.getBucketReplicationConfiguration(sourceBucketName); ReplicationRule rule = replicationConfig.getRule("a-sample-rule-id"); System.out.println("Destination Bucket ARN : " + rule.getDestinationCon

25、fig().getBucketARN(); System.out.println("Prefix : " + rule.getPrefix(); System.out.println("Status : " + rule.getStatus(); catch (AmazonServiceException ase) System.out.println("Caught an AmazonServiceException, which" + " means your request made it " + "

26、;to Amazon S3, but was rejected with an error response" + " for some reason."); System.out.println("Error Message: " + ase.getMessage(); System.out.println("HTTP Status Code: " + ase.getStatusCode(); System.out.println("AWS Error Code: " + ase.getErrorCod

27、e(); System.out.println("Error Type: " + ase.getErrorType(); System.out.println("Request ID: " + ase.getRequestId(); catch (AmazonClientException ace) System.out.println("Caught an AmazonClientException, which means"+ " the client encountered " + "a serio

28、us internal problem while trying to " + "communicate with Amazon S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage(); 如何查找對象的復制狀態在跨區域復制中,您有一個源存儲桶(對它配置復制)和一個目標存儲桶(Amazon S3 將對象復制到其中)。當您請求這些存儲桶中的對象(GET 對象)

29、或對象數據元(HEAD 對象)時,Amazon S3 將在響應中返回 x-amz-replication-status 標頭,如下所示: · 如果請求源存儲桶中的對象 - Amazon S3 將返回 x-amz-replication-status 標頭(如果請求中的對象符合復制條件)。 例如,假設您在復制配置中指定了對象前綴 TaxDocs,從而請求 Amazon S3 復制具有鍵名稱前綴 TaxDocs 的對象。那么,使用此鍵名稱前綴上傳的任何對象(例如 TaxDocs/document1.pdf)都符合復制條件。對于使用此鍵名稱前綴請求的任何對象,Amazon S3 將返回 x

30、-amz-replication-status 標頭與對象復制狀態的以下值之一:PENDING、COMPLETED 或 FAILED。· 如果請求目標存儲桶中的對象 - Amazon S3 將 x-amz-replication-status 標頭和值 REPLICA(如果請求中的對象是 Amazon S3 創建的副本)。您可以在控制臺中、使用 AWS CLI 或以編程方式使用 AWS 開發工具包查找對象復制狀態。 · 在控制臺中,選擇對象,然后選擇 Properties 以查看對象屬性(包括復制狀態)。· 可以使用如下所示的 head-object AWS CL

31、I 命令檢索對象元數據信息:aws s3api head-object -bucket source-bucket -key object-key -version-id object-version-id   該命令會返回對象元數據信息(包括 ReplicationStatus),如以下示例響應所示: "AcceptRanges":"bytes", "ContentType":"image/jpeg", "LastModified":"Mon, 23 Mar 2015 21

32、:02:29 GMT", "ContentLength":3191, "ReplicationStatus":"COMPLETED", "VersionId":"jfnW.HIMOfYiD_9rGbSkmroXsFj3fqZ.", "ETag":""6805f2cfc46c0f04559748bb039d69ae"", "Metadata": · 可以使用 AWS 開發工具包檢索對象的復制狀態。下

33、面是使用適用于 Java 的 AWS 開發工具包和適用于 .NET 的 AWS 開發工具包的代碼片段。 o 適用于 Java 的 AWS 開發工具包o GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest(bucketName, bucketName);o metadataRequest.setKey(key);o ObjectMetadata metadata = s3Client.getObjectMetadata(metadataRequest);oSystem.out.println("Replication Status : " + metadata.getRawMetadataValue(Headers.OBJECT_REPLICATION_STATUS);o 適用于 .NET 的 AWS 開發工具包o GetObjectMetadataRequest getmetadataRequest = new GetObjectMetadataRequ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論