本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
儲存貯體概觀
若要將相片、影片、文件等資料上傳至 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 APIs 將請求傳送至 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 帳戶根使用者 IAM 使用者指南中的 Word 一般參考和安全最佳實務中的憑證和 Word 使用者憑證。 AWS IAM IAM
AWS 帳戶 建立資源的 擁有該資源。例如,如果您在 中建立 IAM 使用者, AWS 帳戶 並授予使用者建立儲存貯體的許可,則使用者可以建立儲存貯體。但使用者不擁有儲存貯體,是使用者所屬的 AWS 帳戶 擁有儲存貯體。使用者需要資源擁有者授予其他許可,才能執行任何其他儲存貯體操作。如需管理 Amazon S3 資源許可的詳細資訊,請參閱 Amazon S3 的身分和存取管理。
管理儲存貯體的公開存取
透過儲存貯體政策、存取控制清單 (ACLs) 或兩者,將公開存取權授予儲存貯體和物件。為協助您管理對 Amazon S3 資源的公開存取,Amazon S3 提供了封鎖公開存取權限設定。Amazon S3 Block Public Access 設定可以覆寫 ACLs 和儲存貯體政策,以便您可以對公開存取這些資源強制執行統一限制。您可套用封鎖公開存取設定到您帳戶中的個別儲存貯體或全部儲存貯體。
若要確保封鎖對所有 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 會將此資訊存放在位置子資源中,並提供 API 供您擷取此資訊。 |
logging |
記錄日誌能讓您追蹤存取儲存貯體的要求。每筆存取日誌記錄都會提供有關單一存取要求的詳細資訊,例如要求者、儲存貯體名稱、要求時間、要求動作、回應狀態及錯誤代碼 (若出現錯誤)。存取記錄資訊在安全與存取稽核中相當實用。您也可藉由該資訊了解自己的客戶群,並掌握 Amazon S3 帳單相關資料。 如需詳細資訊,請參閱「使用伺服器存取記錄記錄要求」。 |
物件鎖定 |
您必須為儲存貯體啟用 S3 物件鎖定,才能使用該功能。您也可以選擇設定預設保留模式和保留期,並套用至位於儲存貯體中的新物件。 如需詳細資訊,請參閱使用物件鎖定鎖定物件。 |
政策和 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 的全域分佈邊緣位置。 |
versioning |
版本控制能幫助您復原意外的覆寫與刪除。 建議使用版本控制作為最佳實務,以復原錯誤刪除或覆寫的物件。 如需詳細資訊,請參閱「使用 S3 版本控制保留多個版本的物件」。 |
website |
您可以設定您的儲存貯體處理靜態網站託管。Amazon S3 會透過建立「website」子資源來存放此組態。 如需詳細資訊,請參閱使用 Amazon S3 託管靜態網站。 |
儲存貯體操作
Amazon S3 的高可用性工程設計重點在於取得、放置、列出與刪除等操作。由於儲存貯體操作可針對集中式全域資源空間運作,因此建議您不要在應用程式的高可用性程式碼路徑上建立、刪除或設定儲存貯體。最好是在不常執行的其他初始化或安裝例行作業中建立、刪除或設定儲存貯體。