

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

# 以程式設計方式列出物件索引鍵
<a name="ListingKeysUsingAPIs"></a>

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

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

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

**注意**  
 Amazon S3 的 SOAP API 不適用於新客戶，並且將於 2025 年 8 月 31 日接近生命週期結束 (EOL)。我們建議您使用 REST API 或 AWS SDKs。

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

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

**REST API**  
也可視應用程式所需，直接傳送 REST 要求。您可以傳送 GET 要求以傳回儲存貯體中的部分或所有物件，或使用挑選準則以傳回儲存貯體中一部分的物件。如需詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [GET Bucket (列出物件) 第 2 版](https://docs.aws.amazon.com/AmazonS3/latest/API/v2-RESTBucketGET.html)。

**清單實作效率**  
清單效能不會受儲存貯體中的索引鍵總數所影響。它也不會受到 `prefix`、`marker`、`maxkeys` 或 `delimiter` 引數的存在或不存在的影響。

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

## 範例
<a name="ListingKeysUsingAPIs_examples"></a>

列出儲存貯體中的所有物件時請注意，您必須擁有 `s3:ListBucket` 許可。

------
#### [ CLI ]

**list-objects**  
下列範例使用 `list-objects` 命令來顯示指定儲存貯體中所有物件的名稱：  

```
aws s3api list-objects --bucket text-content --query 'Contents[].{Key: Key, Size: Size}'
```
此範例使用 `--query` 引數，將 `list-objects` 的輸出篩選為每個物件的金鑰值和大小  
如需物件的詳細資訊，請參閱 [在 Amazon S3 中使用物件](uploading-downloading-objects.md)。  
+  如需 API 詳細資訊，請參閱《AWS CLI API 參考》**中的 [ListObjects](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/list-objects.html)。

**ls**  
下列範例使用 `ls` 命令，列出儲存貯體中的所有物件和字首。  
若要使用此範例命令，請將 **amzn-s3-demo-bucket** 取代為您的儲存貯體名稱。  

```
$ aws s3 ls s3://amzn-s3-demo-bucket
```
+  如需高階命令 `ls` 的詳細資訊，請參閱《AWS Command Line Interface 使用者指南》**中的[列出儲存貯體和物件](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-s3-commands.html#using-s3-commands-listing-buckets)。

------
#### [ PowerShell ]

**Tools for PowerShell V4**  
**範例 1：此命令會擷取儲存貯體 "test-files" 中所有項目的相關資訊。**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket
```
**範例 2：此命令會從儲存貯體 "test-files" 擷取項目 "sample.txt" 的相關資訊。**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt
```
**範例 3：此命令會從儲存貯體 "test-files" 擷取字首為 "sample" 之所有項目的相關資訊。**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix sample
```
+  如需 API 詳細資訊，請參閱《AWS Tools for PowerShell Cmdlet 參考 (V4)》**中的 [ListObjects](https://docs.aws.amazon.com/powershell/v4/reference)。

**Tools for PowerShell V5**  
**範例 1：此命令會擷取儲存貯體 "test-files" 中所有項目的相關資訊。**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket
```
**範例 2：此命令會從儲存貯體 "test-files" 擷取項目 "sample.txt" 的相關資訊。**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -Key sample.txt
```
**範例 3：此命令會從儲存貯體 "test-files" 擷取字首為 "sample" 之所有項目的相關資訊。**  

```
Get-S3Object -BucketName amzn-s3-demo-bucket -KeyPrefix sample
```
+  如需 API 詳細資訊，請參閱《AWS Tools for PowerShell Cmdlet 參考 (V5)》**中的 [ListObjects](https://docs.aws.amazon.com/powershell/v5/reference)。

------