本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
一般用途儲存貯體命名規則
當您建立一般用途儲存貯體時,請務必考慮儲存貯體名稱的長度、有效字元、格式和唯一性。下列各節提供一般用途儲存貯體命名的相關資訊,包括命名規則、最佳實務,並示範如何建立在名稱中包含全域唯一識別碼 (GUID) 的一般用途儲存貯體。
如需物件金鑰名稱的資訊,請參閱建立物件金鑰名稱。
若要建立一般用途儲存貯體,請參閱 建立一般用途儲存貯體。
一般用途儲存貯體命名規則
以下是一般用途儲存貯體適用的命名規則:
-
儲存貯體名稱長度必須介於 3 (最小值) 到 63 (最大值) 個字元之間。
-
儲存貯體名稱只能包含小寫字母、數字、句點 (
.
) 和連字號 ()-
。 -
儲存貯體名稱的開頭和結尾必須為字母或數字。
-
儲存貯體名稱不能包含兩個連續句點。
-
儲存貯體名稱不得格式化為 IP 地址 (例如
192.168.5.4
)。 -
儲存貯體名稱必須以字首
xn--
開頭。 -
儲存貯體名稱必須以字首
sthree-
開頭。 -
儲存貯體名稱必須以字首
amzn-s3-demo-
開頭。 -
儲存貯體名稱不得以尾碼
-s3alias
結尾。存取點別名名稱會保留此尾碼。如需詳細資訊,請參閱一般用途儲存貯體別名的存取點。 -
儲存貯體名稱不得以尾碼
--ol-s3
結尾。Object Lambda 存取點別名名稱會保留此尾碼。如需詳細資訊,請參閱如何針對您的 S3 儲存貯體 Object Lambda 存取點使用儲存貯體樣式別名。 -
儲存貯體名稱不得以尾碼
.mrap
結尾。多區域存取點名稱會保留此字尾。如需詳細資訊,請參閱命名 Amazon S3 多區域存取點的規則。 -
儲存貯體名稱不得以尾碼
--x-s3
結尾。目錄儲存貯體會保留此字尾。如需詳細資訊,請參閱目錄儲存貯體命名規則。 -
儲存貯體名稱不得以尾碼
--table-s3
結尾。此尾碼保留給 S3 Tables 儲存貯體。如需詳細資訊,請參閱Amazon S3 資料表儲存貯體、資料表和命名空間命名規則。 -
與 Amazon S3 Transfer Acceleration 搭配使用的儲存貯體名稱中不能有句點 (
.
)。如需 Transfer Acceleration 的詳細資訊,請參閱 使用 Amazon S3 Transfer Acceleration 設定快速安全的檔案傳輸。
重要
-
儲存貯體名稱在分割區 AWS 區域 內所有 AWS 帳戶 中的所有 中必須是唯一的。分割區是 Regions 的群組。 AWS 目前有三個分割區:
aws
(商業區域)、aws-cn
(中國區域) 和aws-us-gov
(AWS GovCloud (US) 區域)。 -
在刪除儲存貯體之前,相同分割區 AWS 帳戶 中的另一個 無法使用儲存貯體名稱。刪除儲存貯體後,請注意,相同分割區 AWS 帳戶 中的另一個儲存貯體可以使用與新儲存貯體相同的儲存貯體名稱,因此可能會收到針對已刪除儲存貯體提出的請求。如果您想要避免這種情況,或想要繼續使用相同的儲存貯體名稱,請不要刪除儲存貯體。我們建議您清空儲存貯體並保留它,而是視需要封鎖任何儲存貯體請求。對於不再處於作用中狀態的儲存貯體,我們建議清空所有物件的儲存貯體,以將成本降至最低,同時保留儲存貯體本身。
-
當您建立一般用途儲存貯體時,您可以選擇其名稱和 AWS 區域 要在其中建立它。建立一般用途儲存貯體之後,即無法變更其名稱或區域。
-
請勿在儲存貯體名稱中包含敏感資訊。在指向儲存貯體中之物件的 URL 中,會顯示儲存貯體名稱。
注意
2018 年 3 月 1 日之前,在美國東部 (維吉尼亞北部) 區域中建立的儲存貯體名稱長度最多可為 255 個字元,且包含大寫字母和底線。自 2018 年 3 月 1 日開始,美國東部 (維吉尼亞北部) 區域中的新儲存貯體必須符合套用至所有其他區域的相同規則。
一般用途儲存貯體名稱範例
下列儲存貯體名稱顯示一般用途儲存貯體名稱中允許哪些字元的範例:a-z、0-9 和連字號 (-
)。amzn-s3-demo-
預留字首僅供此處說明之用。由於這是預留字首,您無法建立開頭為 的儲存貯體名稱amzn-s3-demo-
。
-
amzn-s3-demo-bucket1-a1b2c3d4-5678-90ab-cdef-example11111
-
amzn-s3-demo-bucket
下列範例儲存貯體名稱有效,但不建議用於靜態網站託管以外的 使用,因為其中包含句點 (.
):
-
example.com
-
www.example.com
-
my.example.s3.bucket
下列範例儲存貯體名稱無效:
-
amzn_s3_demo_bucket
(包含底線) -
AmznS3DemoBucket
(包含大寫字母) -
amzn-s3-demo-bucket-
(開頭為amzn-s3-demo-
字首,結尾為連字號) -
example..com
(一列包含兩個句點) -
192.168.5.4
(符合 IP 地址的格式)
最佳實務
命名一般用途儲存貯體時,請考慮下列儲存貯體命名最佳實務。
選擇不太可能導致命名衝突的儲存貯體命名方案
如果您的應用程式自動建立儲存貯體,請選擇不太可能導致命名衝突的儲存貯體命名方案。如已採用某個儲存貯體名稱,請確保您的應用程式邏輯會選擇不同的儲存貯體名稱。
將全域唯一識別符 (GUIDs) 附加至儲存貯體名稱
建議您建立無法預測的儲存貯體名稱。除非您已建立儲存貯體,否則請勿編寫程式碼,假設您選擇的儲存貯體名稱可用。建立無法預測之儲存貯體名稱的一種方法是將全域唯一識別符 (GUID) 附加到您的儲存貯體名稱,例如 amzn-s3-demo-bucket-a1b2c3d4-5678-90ab-cdef-example11111
。如需詳細資訊,請參閱建立在儲存貯體名稱中使用 GUID 的儲存貯體。
避免在儲存貯體名稱中使用句點 (.
)
為了獲得最佳相容性,建議您避免在儲存貯體名稱中使用句點 (.
),但僅用於靜態網站託管的儲存貯體除外。如果您在儲存貯體的名稱中包含句點,則無法透過 HTTPS virtual-host-style定址,除非您執行自己的憑證驗證。用於儲存貯體虛擬託管的安全憑證不適用於名稱中具有句點的儲存貯體。
此限制不會影響用於靜態網站託管的儲存貯體,因為靜態網站託管只能透過 HTTP 使用。如需虛擬託管型定址的詳細資訊,請參閱 一般用途儲存貯體的虛擬託管。如需靜態網站託管的詳細資訊,請參閱 使用 Amazon S3 託管靜態網站。
選擇相關名稱
當您命名儲存貯體時,我們建議您選擇與您或您的企業相關的名稱。避免使用與其他人相關聯的名稱。例如,避免在您的儲存貯Amazon
體名稱中使用 AWS
或 。
請勿刪除儲存貯體,以便您可以重複使用儲存貯體名稱
如果儲存貯體為空白,您可以將其刪除。刪除某個儲存貯體後,該名稱就可以重複使用。不過,無法保證您能夠立即重複使用名稱,或完全重複使用名稱。刪除儲存貯體之後,在您可以重複使用名稱之前,可能會經過一段時間。此外,另一個 AWS 帳戶 可能會建立具有相同名稱的儲存貯體,然後才能重複使用該名稱。
刪除一般用途儲存貯體之後,請注意相同分割區中的另一個 AWS 帳戶 儲存貯體可以使用與新儲存貯體相同的儲存貯體名稱,因此可能會收到用於已刪除一般用途儲存貯體的請求。如果您想要避免這種情況,或想要繼續使用相同的一般用途儲存貯體名稱,請不要刪除一般用途儲存貯體。我們建議您清空儲存貯體並保留它,而是視需要封鎖任何儲存貯體請求。
建立在儲存貯體名稱中使用 GUID 的儲存貯體
下列範例示範如何建立在儲存貯體名稱結尾使用 GUID 的一般用途儲存貯體。
下列 AWS CLI 範例在美國西部 (加利佛尼亞北部) 區域 (us-west-1
) 中建立一般用途儲存貯體,其範例儲存貯體名稱使用全域唯一識別符 (GUID)。若要使用此範例命令,請以您自己的資訊取代
。user input placeholders
aws s3api create-bucket \ --bucket
amzn-s3-demo-bucket1
$(uuidgen | tr -d - | tr '[:upper:]' '[:lower:]' ) \ --regionus-west-1
\ --create-bucket-configuration LocationConstraint=us-west-1
下列範例說明如何使用 ,在美國東部 (維吉尼亞北部) 區域 (us-east-1
) 的儲存貯體名稱結尾建立具有 GUID 的 適用於 Java 的 AWS SDK。若要使用此範例,請以您自己的資訊取代
。如需 AWS SDKs的詳細資訊,請參閱要建置的工具 AWSuser input placeholders
import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.Bucket; import com.amazonaws.services.s3.model.CreateBucketRequest; import java.util.List; import java.util.UUID; public class CreateBucketWithUUID { public static void main(String[] args) { final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.
US_EAST_1
).build(); String bucketName = "amzn-s3-demo-bucket
" + UUID.randomUUID().toString().replace("-", ""); CreateBucketRequest createRequest = new CreateBucketRequest(bucketName); System.out.println(bucketName); s3.createBucket(createRequest); } }