

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

# 下載物件
<a name="download-objects"></a>

本節說明如何從 Amazon S3 儲存貯體下載物件。使用 Amazon S3，您可以將物件存放在一或多個儲存貯體中，而且每個單一物件的大小最多可達 50 TB。任何未封存的 Amazon S3 物件都可即時存取。而封存的物件必須先還原才能下載。如需下載已封存物件的詳細資訊，請參閱 [下載封存的物件](#download-archived-objects)。

您可以使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI)、 AWS SDKs或 Amazon S3 REST API 下載單一物件。若要從 S3 下載最多 5 TB 的物件，而不撰寫任何程式碼或執行任何命令，請使用 S3 主控台。如需詳細資訊，請參閱[下載物件](#download-an-object)。

若要下載大於 5 TB 的物件，請使用搭配 `Range` HTTP 標頭的並行`GetObject`請求來讀取特定位元組範圍`partNumber`或下載物件的特定部分。單一 GET 請求限制為 5 TB，且您會收到超過 5 TB 的 GET 請求`405 - Method Not Allowed`錯誤。

對於大型物件下載，請在 Java v1/v2、Python 或 AWS CLI SDKs中使用 S3 Transfer Manager。為了獲得最佳效能，請將最新的 AWS Common Runtime (CRT) 與這些 SDK 搭配使用，這些 SDKs 已針對更好的資源使用率進行最佳化。CRT 會自動擴展個別 GETs的大小，以最佳化輸送量。您可以使用適用於 `maxNativeMemoryLimitInBytes` Java 開發套件的記憶體限制參數配置更多記憶體，以改善整體傳輸輸送量。您可以使用下載請求中的 `multipart_chunksize` for AWS CLI 和 `minimumPartSizeInBytes` for Java SDK 等請求參數來設定明確的部分大小，以選擇退出此行為。

若要下載多個物件，請使用 AWS CloudShell、 AWS CLI或 AWS SDKs。如需詳細資訊，請參閱[下載多個物件](#download-multiple-objects)。

如果您需要下載部分物件，您可以搭配 AWS CLI 或 REST API 使用額外的參數，只指定您要下載的位元組。如需詳細資訊，請參閱[下載物件的一部分](#download-objects-parts)。

如果您需要下載您未擁有的物件，可以請物件擁有者產生預先簽章的 URL 讓您下載物件。如需詳細資訊，請參閱[從另一個 下載物件 AWS 帳戶](#download-objects-from-another-account)。

當您在 AWS 網路外部下載物件時，需支付資料傳輸費用。 AWS 網路內的資料傳輸是免費的 AWS 區域，但您將需要支付任何`GET`請求的費用。如需資料傳輸成本和資料擷取收費的詳細資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [下載物件](#download-an-object)
+ [下載多個物件](#download-multiple-objects)
+ [下載物件的一部分](#download-objects-parts)
+ [從另一個 下載物件 AWS 帳戶](#download-objects-from-another-account)
+ [下載封存的物件](#download-archived-objects)
+ [根據中繼資料下載物件](#download-objects-based-on-metadata)
+ [下載物件的故障排除](#download-objects-troubleshooting)

## 下載物件
<a name="download-an-object"></a>

您可以使用 Amazon S3 主控台、 AWS CLI、 AWS SDKs或 REST API 下載物件。

### 使用 S3 主控台
<a name="download-objects-console"></a>

本節說明如何使用 Amazon S3 主控台從 S3 儲存貯體下載物件。

**注意**  
您一次只能下載一個物件。
如果您使用 Amazon S3 主控台下載的物件，且其金鑰名稱結尾為句號 (`.`)，則會移除所下載物件的金鑰名稱中的句號。若要保留下載物件名稱結尾的期間，您必須使用 AWS Command Line Interface (AWS CLI)、 AWS SDKs或 Amazon S3 REST API。

**從 S3 儲存貯體下載物件**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**或**目錄儲存貯體**。

1. 在儲存貯體清單中，選擇您要從中下載物件的儲存貯體名稱。

    

1. 您可使用下列任一方式從 S3 儲存貯體下載物件：
   + 勾選物件旁的核取方塊，然後選擇**下載**。如果您要將物件下載到特定資料夾，請在**動作**選單上選擇**下載為**。
   + 如果您要下載特定版本的物件，請開啟**顯示版本** (位於搜尋方塊旁)。勾選您要的物件版本旁的核取方塊，然後選擇**下載**。如果您要將物件下載到特定資料夾，請在**動作**選單上選擇**下載為**。

### 使用 AWS CLI
<a name="download-object-cli"></a>

以下 `get-object` 範例命令顯示如何使用 AWS CLI 從 Amazon S3 下載物件。此命令會從儲存貯體 `amzn-s3-demo-bucket1` 取得物件 `folder/my_image`。您必須包含 `outfile`，這是下載物件的檔案名稱，例如 `my_downloaded_image.jpg`。

```
aws s3api get-object --bucket amzn-s3-demo-bucket1 --key folder/my_image my_downloaded_image.jpg
```

如需詳細資訊和範例，請參閱AWS CLI 命令參考**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html)。

### 使用 AWS SDKs
<a name="download-object-sdk"></a>

如需如何使用 AWS SDKs 下載物件的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObject_section.html)。

如需使用 AWS SDKs的一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

### 使用 REST API
<a name="download-object-rest"></a>

您可以使用 REST API 從 Amazon S3 擷取物件。如需詳細資訊，請參閱 Amazon Simple Storage Service API 參考**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)。

## 下載多個物件
<a name="download-multiple-objects"></a>

您可以使用 AWS CloudShell、 AWS CLI或 AWS SDKs下載多個物件。

### 在 AWS CloudShell 中使用 AWS 管理主控台
<a name="download-objects-cloudshell"></a>

AWS CloudShell 是以瀏覽器為基礎的預先驗證 Shell，您可以直接從 啟動 AWS 管理主控台。

如需詳細資訊 AWS CloudShell，請參閱[什麼是 CloudShell？](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) *AWS CloudShell 《 使用者指南*》中的 。

**重要**  
透過 AWS CloudShell，您的主目錄具有每個 1GB 的儲存空間 AWS 區域。因此，您無法同步物件總計超過此數量的儲存貯體。如要了解更多限制，請參閱《AWS CloudShell 使用者指南》**中的 [Service Quotas 和限制](https://docs.aws.amazon.com/cloudshell/latest/userguide/limits.html)。

**使用 下載物件 AWS CloudShell**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/cloudshell/](https://console.aws.amazon.com/cloudshell/) 的 CloudShell 主控台。

1. 執行下列命令，將儲存貯體中的物件同步至 CloudShell。下列命令會從名為 `amzn-s3-demo-bucket1` 的儲存貯體同步物件，並在 CloudShell 中建立名為 `temp` 的資料夾。CloudShell 會將您的物件同步到此資料夾。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。

   ```
   aws s3 sync s3://amzn-s3-demo-bucket1 ./temp
   ```
**注意**  
`sync` 命令與目錄儲存貯體不相容。  
若要執行模式比對以排除或包含特定物件，您可以使用 `--exclude "value"` 和 `--include "value"` 參數搭配 `sync` 命令。

1. 執行下列命令，將名為 `temp` 的資料夾中的物件壓縮成名為 `temp.zip` 的檔案。

   ```
   zip temp.zip -r temp/
   ```

1. 選擇**動作**選單，然後選擇**下載檔案**。

1. 輸入檔案名稱 `temp.zip`，然後選擇**下載**。

1. (選擇性) 刪除 `temp.zip` 檔案和已同步至 CloudShell 中 `temp` 資料夾的物件。在 AWS CloudShell中，您擁有每個 AWS 區域最多 1 GB 的持久性儲存空間。

   您可以使用下列範例命令來刪除您的 `.zip` 檔案和資料夾。若要使用此範例命令，請以您自己的資訊取代 `user input placeholders`。

   ```
   rm temp.zip && rm -rf temp/
   ```

### 使用 AWS CLI
<a name="download-objects-cli"></a>

下列範例示範如何使用 AWS CLI 下載指定目錄或字首下的所有檔案或物件。此命令會將儲存貯體 `amzn-s3-demo-bucket1` 中的所有物件複製到您目前的目錄。若要使用此範例命令，請使用您的儲存貯體名稱取代 `amzn-s3-demo-bucket1`。

```
aws s3 cp s3://amzn-s3-demo-bucket1 . --recursive
```

下列命令會將儲存貯體 `amzn-s3-demo-bucket1` 中字首為 `logs` 的所有物件下載到您目前的目錄。此命令還會使用 `--exclude` 和 `--include` 參數僅複製字尾為 `.log` 的物件。若要使用此範例命令，請以您自己的資訊取代 `user input placeholders`。

```
aws s3 cp s3://amzn-s3-demo-bucket1/logs/ . --recursive --exclude "*" --include "*.log"
```

如需詳細資訊和範例，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html)。

### 使用 AWS SDKs
<a name="download-objects-sdks"></a>

如需如何使用 AWS SDKs 下載 Amazon S3 儲存貯體中所有物件的範例，請參閱《*Amazon S3 API 參考*》中的[程式碼範例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_DownloadBucketToDirectory_section.html)。

如需使用 AWS SDKs的一般資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

## 下載物件的一部分
<a name="download-objects-parts"></a>

您可以使用 AWS CLI 或 REST API 下載部分物件。若要這麼做，請使用額外的參數來指定要下載物件的哪一部分。

### 使用 AWS CLI
<a name="download-objects-part-cli"></a>

下列範例命令會針對名為 `amzn-s3-demo-bucket1` 的儲存貯體中，名為 `folder/my_data` 的物件的某個位元組範圍執行 `GET` 請求。在請求中，位元組範圍必須加上字首 `bytes=`。部分物件會下載到名為 `my_data_range` 的輸出檔案中。若要使用此範例命令，請以您自己的資訊取代 `user input placeholders`。

```
aws s3api get-object --bucket amzn-s3-demo-bucket1 --key folder/my_data --range bytes=0-500 my_data_range
```

如需詳細資訊和範例，請參閱《AWS CLI 命令參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html)。

如需 HTTP `Range` 標頭的詳細資訊，請參閱 RFC Editor 網站上的 [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-range)。

**注意**  
Amazon S3 不支援在單一 `GET` 請求中擷取多重資料範圍。

### 使用 REST API
<a name="download-objects-part-rest"></a>

您可以使用 REST API 中的 `partNumber` 和 `Range` 參數從 Amazon S3 擷取物件的部分。如需詳細資訊，請參閱 Amazon Simple Storage Service API 參考**中的 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)。

## 從另一個 下載物件 AWS 帳戶
<a name="download-objects-from-another-account"></a>

您可以使用預先簽章的 URL 授予他人對您的物件的限時存取權，而不需更新您的儲存貯體政策。

預先簽章的 URL 可以在瀏覽器中輸入，或由程式用來下載物件。URL 使用的登入資料是產生 URL AWS 的使用者登入資料。建立 URL 之後，任何人只要擁有預先簽章的 URL，都可以下載對應的物件，直到 URL 過期為止。

### 使用 S3 主控台中的預先簽章 URL
<a name="download-objects-presigned"></a>

您可以藉由執行以下步驟，使用 Amazon S3 主控台產生預先簽章 URL，如此即可共用一般用途儲存貯體中的物件。當使用主控台時，預先簽章 URL 的最長時效為自建立時間起算 12 小時。

**使用 Amazon S3 主控台產生預先簽章的 URL**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇**一般用途儲存貯體**。

1. 在儲存貯體清單中，選擇儲存貯體名稱，該儲存貯體包含您要為其建立預先簽章 URL 的物件。

1. 在 **Objects** (物件) 清單中，選取要為其建立預先簽章 URL 的物件。

1. 在**物件動作**選單中，選擇**使用預先簽章的 URL 來共用**。

1. 指定預先簽章 URL 的有效期限。

1. 選擇 **Create presigned URL** (建立預先簽章的 URL)。

1. 當確認訊息出現時，URL 會自動複製到剪貼簿。如果您需要再次複製預先簽章的 URL，您將會看到一個複製按鈕。

1. 若要下載物件，請將 URL 貼入任何瀏覽器中，物件就會嘗試下載。

如需預先簽章的 URL 及其他建立方法的詳細資訊，請參閱 [使用預先簽章的 URL 來下載和上傳物件](using-presigned-url.md)。

## 下載封存的物件
<a name="download-archived-objects"></a>

若要降低不常存取物件的儲存成本，您可以*封存*這些物件。當您封存物件時，該物件會移入低成本的儲存空間，這表示您無法即時存取該物件。若要下載封存的物件，您必須先將它還原。

根據儲存類別而定，還原封存的物件可能需要幾分鐘到數小時不等的時間。您可以使用 Amazon S3 主控台、S3 批次操作、Amazon S3 REST API、 AWS SDKs 和 AWS Command Line Interface () 來還原封存的物件AWS CLI。

如需說明，請參閱[還原已封存的物件](restoring-objects.md)。還原封存的物件之後，就可以下載該物件。

## 根據中繼資料下載物件
<a name="download-objects-based-on-metadata"></a>

您可以新增先決條件，以使用條件式讀取請求，根據物件的中繼資料下載物件。您可以根據物件的實體標籤 (ETag) 或上次修改日期傳回物件。這可限制對自指定日期以來已更新的物件執行 S3 操作，或僅傳回特定物件版本。

您可以針對 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 或 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) 請求使用條件式寫入。

如需條件式請求的詳細資訊，請參閱[使用條件式請求將先決條件新增至 S3 操作](conditional-requests.md)。

## 下載物件的故障排除
<a name="download-objects-troubleshooting"></a>

當您嘗試從 Amazon S3 下載物件時，許可不足或儲存貯體或 AWS Identity and Access Management (IAM) 使用者政策不正確可能會導致錯誤。這些問題經常會導致存取遭拒 (403 Forbidden) 錯誤，使得 Amazon S3 無法允許資源存取。

如要了解導致存取遭拒 (403 Forbidden) 錯誤的常見原因，請參閱 [對 Amazon S3 中的存取遭拒 (403 Forbidden) 錯誤進行故障診斷](troubleshoot-403-errors.md)。

如果您在嘗試存取物件時收到 404 NoSuchKey 錯誤，請參閱[如何疑難排解來自 Amazon S3 的 404 NoSuchKey 錯誤？](https://repost.aws/knowledge-center/404-error-nosuchkey-s3) AWS re:Post 知識中心的 。