以程式設計方式列出物件索引鍵 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

以程式設計方式列出物件索引鍵

在 Amazon S3 中,索引鍵可以依字首列出。您可以為相關索引鍵名稱選擇共用字首,並使用特殊字元標示這些索引鍵,以劃分層次結構。然後,您可以使用清單操作,以階層方式選取和瀏覽索引鍵。類似於檔案存放在檔案系統目錄中的方式。

Amazon S3 提供清單操作,讓您可以列舉儲存貯體中所包含的金鑰。這些金鑰會依儲存貯體及字首選取列出。例如,假設有一個名為 "dictionary" 的儲存貯體,其中包含一個代表所有英文文字的索引鍵。您可以進行呼叫,列出該儲存貯體中以字母 "q" 開頭的所有金鑰。清單結果一律會依 UTF-8 二進位順序傳回。

SOAP 與 REST 清單操作都會傳回 XML 文件,其中包含相符金鑰的名稱,以及每個金鑰所識別之物件的相關資訊。

注意

HTTP 上的 SOAP 支援已淘汰,但仍可透過 HTTPS 取得 SOAP。SOAP 不支援新的 Amazon S3 功能。我們建議您使用 REST API 或 AWS 開發套件,而不是使用 SOAP。

皆為同一個字首並以特殊分隔符號結尾的金鑰群組,可依該共同字首彙總以方便列出。應用程式如此即可用階層方式組織及瀏覽其金鑰,就像是將檔案分組到檔案系統中不同的目錄一樣。

例如,若要展開 dictionary 儲存貯體以包含英文以外的文字時,可以在每個字前面加上其語言和分隔符號 (例如 "French/logical") 來組成索引鍵。使用此命名配置和階層式清單功能,您就可以只擷取法文文字清單。您也可以瀏覽最上層的可用語言清單,而無須逐一查看詞典編纂的所有金鑰。如需列出清單方面的詳細資訊,請參閱「使用字首整理物件」。

REST API

也可視應用程式所需,直接傳送 REST 要求。您可以傳送 GET 要求以傳回儲存貯體中的部分或所有物件,或使用挑選準則以傳回儲存貯體中一部分的物件。如需詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的 GET Bucket (列出物件) 第 2 版

清單實作效率

清單效能不會受儲存貯體中的索引鍵總數所影響。它也不會受到 prefixmarkermaxkeysdelimiter 引數的存在或不存在的影響。

逐一查看多頁結果

因為儲存貯體幾乎可以包含不限數目的金鑰,所以完整的清單查詢結果可能會相當龐大。為管理大型結果集,Amazon S3 API 支援利用分頁方式將其分成多個回應。每個列出金鑰回應最多會傳回含有 1,000 個金鑰的頁面,並指出回應是否遭到截斷。您會傳送一系列清單金鑰要求,直到您收到所有金鑰為止。 AWS SDK 包裝函式庫提供相同的分頁。

範例

下列程式碼範例會示範如何使用ListObjects

CLI
AWS CLI

下列範例會使用list-objects命令來顯示指定值區中所有物件的名稱:

aws s3api list-objects --bucket text-content --query 'Contents[].{Key: Key, Size: Size}'

此範例使用--query引數將輸出篩選為每個物件的list-objects索引鍵值和大小

如需有關物件的詳細資訊,請參閱 Amazon S3 開發人員指南中的使用 Amazon S3 物件。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListObjects中的。

PowerShell
適用的工具 PowerShell

範例 1:此命令會擷取值區「測試檔案」中所有項目的相關資訊。

Get-S3Object -BucketName test-files

示例 2:此命令從存儲桶「測試文件」中檢索有關項目「sample.txt」的信息。

Get-S3Object -BucketName test-files -Key sample.txt

示例 3:此命令從存儲桶「測試文件」中檢索有關前綴為「sample」的所有項目的信息。

Get-S3Object -BucketName test-files -KeyPrefix sample
  • 如需 API 詳細資訊,請參閱AWS Tools for PowerShell 指令程ListObjects式參考中的。