Xamarin 的AWS行動 SDK 現在已包含在AWS SDK for .NET. 本指南參考 Xamarin 行動 SDK 的封存版本。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Simple Storage Service (S3)
什麼是 S3?
Amazon Simple Storage Service (Amazon S3)
Amazon S3 為各種使用案例提供經濟高效的對象存儲,包括雲應用程序、內容分發、備份和歸檔、災難恢復和大數據分析。
如需 AWS S3 區域可用性的相關資訊,請參AWS 服務區域可用性
重要概念
儲存貯體
您存放在 Amazon S3 的每個物件都位在儲存貯體內。您可以使用儲存貯體將相關物件分組,其方式與使用目錄將檔案系統中的檔案分組相同。存儲桶具有諸如訪問權限和版本控制狀態等屬性,您可以指定希望它們駐留的區域。
若要進一步了解 S3 儲存貯體,請參使用儲存貯體《S3 開發人員指南》中的資訊。
物件
物件是您存放在 Amazon S3 的資料。每個物件都位在您於特定 AWS 區域中建立的儲存貯體內。
除非您明確地將存放在區域中的物件傳輸到其他區域,否則物件絕對不會離開該區域。例如,存放在 EU (愛爾蘭) 區域的物件絕不會離開此區域。存放在 Amazon S3 區域的物件實際上仍會留在該區域。Amazon S3 不會保留複本,或是將物件移動到任何其他的區域。不過,只要您有必要許可,就可以從任何位置存取物件。
物件可以是任意檔案類型,包括影像、備份資料、影片等等。物件最大可達 5 TB。儲存貯體中可以有不限數目的物件。
您必須具備儲存貯體的寫入許可,才能將物件上傳至 Amazon S3。如需設定儲存貯體許可的詳細資訊,請參編輯儲存貯體許可《S3 開發人員指南》中的資訊。
若要進一步了解 S3 物件,請參使用物件《S3 開發人員指南》中的資訊。
物件中繼資料
Amazon S3 中的每個物件都有一組代表其中繼資料的鍵值對代表其中繼資料。有兩種類型的中繼資料:
-
系統元數據— 有時由 Amazon S3 處理,例如內容類型和內容長度。
-
使用者資料— 從不會由 Amazon S3 進行處理。使用者中繼資料會與物件一起存放,並與其一起傳回。使用者中繼資料的大小上限為 2 KB,而且索引鍵與其值必須符合 US-ASCII 標準。
若要進一步了解 S3 物件中繼資料,請參編輯物件中繼資料。
項目設定
先決條件
要在應用程序中使用 Amazon S3,您需要將開發工具包添加到您的項目中。若要執行此作業,請依照設定適用 .NET 和 Xamarin 的 AWS 移動開發套件。
建立 S3 儲存貯體
Amazon S3 將應用程序的資源存儲在 Amazon S3 存儲桶中-存儲在特定區域。每個 Amazon S3 儲存貯體都必須具有全域唯一的名稱。您可以使用Amazon S3 主控台
-
登入Amazon S3 主控台
然後按一下建立儲存貯體。 -
輸入儲存貯體名稱,選擇區域,然後按一下建立。
設定 S3 的許可
默認 IAM 角色政策授權您的應用程式訪問 Amazon Mobile Analytics 和 Amazon Cognito Sync。要使您的 Cognito 身份池能夠訪問 Amazon S3,您必須修改身份池的角色。
-
前往Identity and Access Management Console
然後按一下角色在左側窗格中。 -
在搜尋方塊中輸入您的身分集區名稱。將會列出兩個角色:一個用於未經驗證的使用者,另一個用於通過驗證的使用者。
-
按一下未經身份驗證的用户的角色 (它會在您的身份池名稱後面附加無身份驗證)。
-
按一下建立角色政策,選擇政策產生器,然後按一下選擇。
-
在編輯許可頁面上,輸入下圖中顯示的設定,將 Amazon Resource Name (ARN) 替換為您自己的 Amazon Resource Name (ARN)。S3 儲存貯體的 ARN 看起來像
arn:aws:s3:::examplebucket/*
中繼資料,由儲存貯體所在的區域和儲存貯體名稱組成。下面顯示的設置將為您的身份池提供完全訪問指定存儲桶的所有操作。
-
按一下添加陳述式按鈕,然後單擊後續步驟。
-
嚮導會顯示您產生的配置。按一下應用政策。
如需授予 S3 訪問權限的詳細資訊,請參授予對 Amazon S3 儲存貯體的存取權
(可選)配置 S3 請求的簽名版本
與 Amazon S3 的每次互動,可以經過驗證身份或是匿名進行。AWS 使用簽名版本 4 或簽名版本 2 算法對服務的調用進行身份驗證。
2014 年 1 月之後創建的所有新 AWS 區域僅支持簽名版本 4。但是,許多較舊的區域仍然支援 Signature 第 4 版和 Signature 第 2 版請求。
如果您的存儲桶位於不支持簽名版本 2 請求的區域之一,如此頁面時,您必須設定AWSConfigsS3.UseSignature版本 4 屬性設置為「true」,如下所示:
AWSConfigsS3.UseSignatureVersion4 = true;
如需 AWS Signature 版本的詳細資訊,請參驗證請求(AWS Signature 第 4 版)。
將 S3 與您的應用程式整合
有兩種方式可以在 Xamarin 應用程序中與 S3 進行交互。在以下主題中深入探討了這兩種方法: