本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要將相片、影片、文件等資料上傳至 Amazon S3,您必須先在其中一個 AWS 區域中建立 S3 儲存貯體。
有兩種類型的 Amazon S3 儲存貯體:一般用途儲存貯體和目錄儲存貯體。請選擇最適合您的應用程式和效能需求的儲存貯體類型。
-
一般用途儲存貯體是原始 S3 儲存貯體類型,建議用於大多數使用案例和存取模式。一般用途儲存貯體也允許跨所有儲存類別儲存的物件,但 S3 Express One Zone 除外。
-
目錄儲存貯體使用 S3 Express One Zone 儲存類別,如果您的應用程式對效能敏感,且受益於單一位數毫秒
PUT
和GET
延遲,請參閱 S3 Express One Zone和 使用目錄儲存貯體。
下列各節提供一般用途儲存貯體的詳細資訊,包括儲存貯體命名規則、配額,以及儲存貯體組態詳細資訊。如需 Amazon S3 儲存貯體的相關限制清單,請參閱儲存貯體配額與限制。
一般用途儲存貯體概觀
一般用途儲存貯體是 Amazon S3 中用於儲存物件的容器。您可以在儲存貯體中儲存任意數量的物件,而且所有帳戶的預設儲存貯體配額都是 10,000 個一般用途儲存貯體。若要查看您的儲存貯體使用率、儲存貯體配額,或是請求提高此配額,請造訪 Service Quotas 主控台
-
商業區域的一般用途儲存貯體配額只能從美國東部 (維吉尼亞北部) 檢視和管理。
-
的一般用途儲存貯體配額 AWS GovCloud (US) 只能從 AWS GovCloud (美國西部) 檢視和管理。
每個物件都包含在儲存貯體中。例如,如果名為 photos/puppy.jpg
的物件存放在美國西部 (奧勒岡) 區域的 amzn-s3-demo-bucket
儲存貯體中,則可以使用 URL https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/photos/puppy.jpg
定址。如需詳細資訊,請參閱存取儲存貯體。
在實作方面,儲存貯體和物件是 AWS 資源,Amazon S3 提供 APIs 供您管理。例如,您可以使用 Amazon S3 API 建立儲存貯體並上傳物件。或者,您也可以使用 Amazon S3 主控台執行這些操作,主控台就會使用 Amazon S3 API 將請求傳送給 Amazon S3。
本節說明如何使用儲存貯體。如需使用物件的資訊,請參閱「Amazon S3 物件概觀」。
Amazon S3 支援全域儲存貯體,這表示每個儲存貯體名稱在分割區 AWS 區域 內的所有 AWS 帳戶 中都必須是唯一的。分割區是 Regions 的群組。 AWS 目前有三個分割區: aws
(標準區域)、 aws-cn
(中國區域) 和 aws-us-gov
()AWS GovCloud (US)。
建立儲存貯體之後,該儲存貯體的名稱便無法由相同分割區的其他 AWS 帳戶 使用,直到刪除儲存貯體為止。建議您不要為了可用性或安全驗證目的而依賴特定的儲存貯體命名慣例。如需儲存貯體命名準則,請參閱「一般用途儲存貯體命名規則」。
Amazon S3 會在您指定的區域建立儲存貯體。若要減少延遲、將成本降至最低,或因應法規要求,請選擇任何您附近的 AWS 區域 區域。舉例而言,如果您住在歐洲,則在歐洲 (愛爾蘭) 或歐洲 (法蘭克福) 區域建立儲存貯體可能較有利。如需 Amazon S3 區域的清單,請參閱《AWS 一般參考》中的區域與端點。
注意
屬於您在特定 中建立的儲存貯體的物件 AWS 區域 絕不會離開該區域,除非您明確地將其轉移到另一個區域。例如,存放在歐洲 (愛爾蘭) 區域中的物件絕對會保留在此區域。
常見儲存貯體模式
當您在 Amazon S3 上建置應用程式時,您可以使用唯一的一般用途儲存貯體來分隔不同的資料集或工作負載。使用儲存貯體時,會有不同的設計模式和最佳實務,視您的使用案例而定。如需詳細資訊,請參閱在 Amazon S3 上建置應用程式時的常見儲存貯體模式。
許可
您可以使用您的 AWS 帳戶根使用者 登入資料來建立儲存貯體,並執行任何其他 Amazon S3 操作。但是,我們不建議您使用 AWS 帳戶 的根使用者登入資料來提出請求,例如:建立儲存貯體。您可以改為建立 AWS Identity and Access Management (IAM) 使用者,並授予該使用者完整存取許可 (使用者預設無任何許可)。
這些使用者稱為「管理員」。您可以使用管理員使用者登入資料,而不是帳戶的根使用者登入資料,來與 互動 AWS 並執行任務,例如建立儲存貯體、建立使用者,以及授予他們許可。
如需詳細資訊,請參閱《AWS 一般參考》中的AWS 帳戶根使用者 憑證與 IAM 使用者憑證以及《IAM 使用者指南》中的 IAM 安全最佳實務。
AWS 帳戶 建立資源的 擁有該資源。例如,如果您在 中建立 IAM 使用者, AWS 帳戶 並授予使用者建立儲存貯體的許可,則使用者可以建立儲存貯體。但使用者不擁有儲存貯體,是使用者所屬的 AWS 帳戶 擁有儲存貯體。使用者需要資源擁有者授予其他許可,才能執行任何其他儲存貯體操作。如需管理 Amazon S3 資源許可的詳細資訊,請參閱 Amazon S3 的身分和存取管理。
管理儲存貯體的公開存取
透過儲存貯體政策、存取控制清單 (ACL) 或兩者來授予對儲存貯體和物件的公開存取。為協助您管理對 Amazon S3 資源的公開存取,Amazon S3 提供了封鎖公開存取權限設定。Amazon S3 封鎖公開存取權限設定可以覆寫 ACL 與儲存貯體政策,方便您對這些資源的公開存取強制執行統一限制。您可套用封鎖公開存取設定到您帳戶中的個別儲存貯體或全部儲存貯體。
若要確保封鎖對所有 Amazon S3 儲存貯體和物件的公開存取,在您建立新的儲存貯體時,預設會啟用「封鎖公開存取」的所有四個設定。建議您也為帳戶開啟「封鎖公開存取」的所有四個設定:這些設定會封鎖所有現有和未來儲存貯體的一切公開存取。
套用這些設定前,請確認應用程式無須公用存取權限也可正常運作。如果儲存貯體或物件需要特定層級的公開存取權限 (例如 使用 Amazon S3 託管靜態網站 中所述的託管靜態網站),您可配合儲存體使用案例自訂個別設定。如需詳細資訊,請參閱封鎖對 Amazon S3 儲存體的公開存取權。
不過,高度建議將「封鎖公開存取」保持啟用狀態。如果想要將全部四個「封鎖公開存取」設定保持啟用狀態,並託管靜態網站,您可以使用 Amazon CloudFront 原始存取控制 (OAC)。Amazon CloudFront 提供建立安全靜態網站所需的功能。Amazon S3 靜態網站只支援 HTTP 端點。Amazon CloudFront 使用 Amazon S3 的耐久性儲存體,同時提供額外的安全標頭,例如 HTTPS。HTTPS 透過加密一般 HTTP 請求並防止常見的網路攻擊來增加安全性。
如需詳細資訊,請參閱《Amazon CloudFront 開發人員指南》中的安全靜態網站入門。
注意
如果您在列出儲存貯體及其公用存取設定時看到 Error
,則您可能沒有所需的許可。確保您已將下列許可新增至您的使用者或角色政策:
s3:GetAccountPublicAccessBlock s3:GetBucketPublicAccessBlock s3:GetBucketPolicyStatus s3:GetBucketLocation s3:GetBucketAcl s3:ListAccessPoints s3:ListAllMyBuckets
在極少數狀況下,請求也可能因 AWS 區域 中斷而失敗。
儲存貯體組態選項
Amazon S3 支援各種設定儲存貯體的選項。例如,您可以設定儲存貯體處理網站託管、新增組態來管理儲存貯體中的物件生命週期,以及設定儲存貯體記錄所有對儲存貯體的存取。此外,Amazon S3 也支援子資源,讓您可以存放及管理儲存貯體組態資訊。您可以使用 Amazon S3 API 來建立和管理這些子資源。不過,您也可以使用 主控台或 AWS SDKs。
注意
也有物件層級的組態。例如,您可以設定該物件的專用存取控制清單 (ACL),來設定物件層級許可。
這些會當成子資源參考,因為它們存在於特定的儲存貯體或物件內容中。下表列出子資源,讓您管理儲存貯體專用組態。
子資源 | 描述 |
---|---|
cors (跨來源資源共享) |
您可以設定儲存貯體允許跨來源要求。 如需詳細資訊,請參閱「使用跨來源資源分享 (CORS)」。 |
event notification |
您可以讓儲存貯體傳送指定儲存貯體事件的通知。 如需詳細資訊,請參閱Amazon S3 事件通知。 |
lifecycle |
您可以為已妥善定義生命週期的儲存貯體物件,定義生命週期規則。例如,您可以定義一項規則,建立物件後將它封存一年,或建立物件 10 年後將它刪除。 如需詳細資訊,請參閱「管理物件的生命週期」。 |
位置 |
當您建立儲存貯體時,您可以指定您希望 Amazon S3 建立儲存貯體 AWS 區域 的 。Amazon S3 會將此資訊存放在「location」子資源中,並提供可擷取此資訊的 API。 |
logging |
記錄日誌能讓您追蹤存取儲存貯體的要求。每筆存取日誌記錄都會提供有關單一存取要求的詳細資訊,例如要求者、儲存貯體名稱、要求時間、要求動作、回應狀態及錯誤代碼 (若出現錯誤)。存取記錄資訊在安全與存取稽核中相當實用。您也可藉由該資訊了解自己的客戶群,並掌握 Amazon S3 帳單相關資料。 如需詳細資訊,請參閱「使用伺服器存取記錄記錄要求」。 |
物件鎖定 |
您必須為儲存貯體啟用 S3 物件鎖定,才能使用該功能。您也可以選擇設定預設保留模式和保留期,並套用至位於儲存貯體中的新物件。 如需詳細資訊,請參閱使用物件鎖定來鎖定物件。 |
policy 與 ACL (存取控制清單) |
所有資源 (例如儲存貯體與物件) 預設都是私有的。Amazon S3 支援儲存貯體政策與存取控制清單 (ACL) 選項,可讓您授予及管理儲存貯體層級許可。Amazon S3 會將許可資訊存放在「policy」與「acl」子資源中。 如需詳細資訊,請參閱Amazon S3 的身分和存取管理。 |
複寫 |
複寫是跨不同或相同 AWS 區域的儲存貯體自動非同步的物件複製。如需詳細資訊,請參閱複寫區域內和跨區域的物件。 |
requestPayment |
根據預設, AWS 帳戶 建立儲存貯體的 (儲存貯體擁有者) 會支付從儲存貯體下載的費用。使用此子資源,儲存貯體擁有者可以指定要求下載的人支付下載的費用。Amazon S3 提供 API,讓您管理此子資源。 如需詳細資訊,請參閱「使用儲存體傳輸和用量的申請者付款儲存貯體」。 |
tagging |
您可以將成本分配標籤新增至儲存貯體,以分類和追蹤您的 AWS 成本。Amazon S3 提供的「tagging」子資源可讓您存放及管理儲存貯體上的標籤。使用套用至儲存貯體的標籤, AWS 會產生成本分配報告,按標籤彙總用量與成本。 如需詳細資訊,請參閱「Amazon S3 的帳單與用量報告」。 |
transfer acceleration |
Transfer Acceleration 可讓用戶端與 S3 儲存貯體間的長距離檔案傳輸作業變得迅速、簡單又安全。Transfer Acceleration 善用 Amazon CloudFront 遍佈全球的節點。 如需詳細資訊,請參閱「使用 Amazon S3 Transfer Acceleration 設定快速安全的檔案傳輸」。 |
versioning |
版本控制能幫助您復原意外的覆寫與刪除。 建議使用版本控制作為最佳實務,以復原錯誤刪除或覆寫的物件。 如需詳細資訊,請參閱「使用 S3 版本控制保留多個版本的物件」。 |
website |
您可以設定您的儲存貯體處理靜態網站託管。Amazon S3 會透過建立「website」子資源來存放此組態。 如需詳細資訊,請參閱使用 Amazon S3 託管靜態網站。 |
儲存貯體操作
Amazon S3 的高可用性工程設計重點在於取得、放置、列出與刪除等操作。由於儲存貯體操作是對一個集中的全域資源空間進行,因此建議您不要在應用程式的高可用性程式碼路徑中建立、刪除或設定儲存貯體。最好是在不常執行的其他初始化或安裝例行作業中建立、刪除或設定儲存貯體。