本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用開發 AWS 套件使用 Amazon S3 進行開發
AWS 軟件開發套件(SDK)可用於許多流行的編程語言。每個 SDK 都提供 API、程式碼範例和說明文件,讓開發人員能夠更輕鬆地以偏好的語言建置應用程式。
注意
您可以用 AWS Amplify 於 Web 和移動應用程序的 end-to-end 全棧開發。Amplify Storage 將檔案儲存和管理功能無縫整合到建置在 Amazon S3 之上的前端 Web 和行動應用程式中。如需詳細資訊,請參閱 Amplify 使用指南中的儲存空間
SDK 程式設計介面
每個 AWS 開發套件都提供一或多個程式設計界面,以便與 Amazon S3 搭配使用。每個開發套件都為 Amazon S3 提供低階介面,其方法與 API 操作非常類似。有些開發套件為 Amazon S3 提供高階介面,這些介面是旨在簡化常見使用案例的抽象化。
例如,當您使用低階 API 作業執行多部分上傳時,您需要使用作業來啟動上載,另一項上載零件的作業,以及完成上載作業的最終作業。高階分段上傳 API 作業可讓您在單一 API 呼叫中執行上傳所需的所有作業。如需範例,請參閱 使用分段上傳來上傳物件。
低級 API 操作允許更好地控制上傳。如果您需要暫停和繼續上傳、在上傳期間變更零件大小,或者在事先不知道資料大小時開始上傳,建議您使用低階 API 作業。
在請求身分驗證中指定 Signature 版本
Amazon S3 在大多數情況下僅支持 AWS 簽名版本 4 AWS 區域。在某些較舊版本中 AWS 區域,Amazon S3 同時支援簽名版本 4 和簽名版本 2。然而,Signature 第 2 版已結束 (已廢除)。如需 Signature 第 2 版終止支援的詳細資訊,請參閱AWS Amazon S3 的簽名版本 2 已關閉 (已淘汰)。
如需所有 Amazon S3 區域及其支援之簽章版本的清單,請參閱《AWS 一般參考》中的區域與端點。
對於所有 AWS SDK AWS 區域,默認情況下使用簽名版本 4 來驗證請求。使用 2016 年 5 月之前發行的 AWS SDK 時,您可能需要請求簽名版本 4,如下表所示。
SDK | 要求 Signature 第 4 版進行要求身分驗證 |
---|---|
AWS CLI |
針對預設描述檔,執行下列命令:
針對自訂描述檔,執行下列命令:
|
Java 開發套件 |
在程式碼中新增下列程式碼:
或者,在命令列指定下列項目:
|
JavaScript SDK |
建構用戶端時,請將
|
PHP SDK |
針對 PHP SDK v2 建構 Amazon S3 服務用戶端時,請將
使用 PHP SDK 第 3 版時,請在建構 Amazon S3 服務用戶端時,將
|
Python-Boto SDK |
在 boto 預設組態檔中,指定以下內容:
|
Ruby 開發套件 |
Ruby 開發套件 - 第 1 版:建構用戶端時,請將
Ruby 開發套件 - 第 3 版:建構用戶端時,請將
|
.NET 開發套件 |
在建立 Amazon S3 用戶端之前,將以下內容新增至程式碼:
或者,將以下內容新增至組態檔:
|
AWS Amazon S3 的簽名版本 2 已關閉 (已淘汰)
Amazon S3 中的 Signature 第 2 版已結束 (已廢除)。Amazon S3 將僅接受使用 Signature 第 4 版簽署的 API 請求。
本節提供有關 Signature 第 2 版終止支援的常見問答。
什麼是 Signature 第 2/4 版,而簽署請求又表示什麼意思?
Signature 第 2 版或 Signature 第 4 版簽署程序用於驗證您的 Amazon S3 API 請求。簽署請求可讓 Amazon S3 識別傳送請求的人員,並保護請求免於受到不良執行者的破壞。
如需簽署 AWS 要求的詳細資訊,請參閱 AWS 一般參考. AWS
更新包含什麼內容?
我們目前支援使用 Signature 第 2 版和 Signature 第 4 版程序簽署的 Amazon S3 API 請求。在此之後,Amazon S3 將僅接受使用 Signature 第 4 版簽署的請求。
如需有關簽署 AWS 要求的詳細資訊,請參閱 AWS 一般參考.
更新的原因?
Signature 第 4 版使用簽署金鑰 (而不使用私密存取金鑰) 來提高安全性。目前所有簽名版本 4 都支援 AWS 區域,而簽名版本 2 僅在 2014 年 1 月之前推出的地區支援。這項更新可讓我們在所有區域中提供更一致的體驗。
我要如何確定正在使用的是 Signature 第 4 版,以及我需要進行哪些更新?
用於簽署請求的 Signature 版本,其常見的設定方法為用戶端上的工具或 SDK。根據預設,我們 AWS SDK 的最新版本使用簽名版本 4。對於第三方軟體,請聯絡適當的軟體支援團隊以確認您需要的版本。如果要向 Amazon S3 傳送直接 REST 呼叫,必須修改應用程式以使用 Signature 第 4 版簽署程序。
如需移至簽名版本 4 時要使用的 AWS SDK 版本的相關資訊,請參閱從 Signature 第 2 版遷移至 Signature 第 4 版。
如需有關在 Amazon S3 REST API 中使用 Signature 第 4 版的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的身分驗證請求 (AWS Signature 第 4 版)。
如果不更新會發生什麼情況?
在此之後使用 Signature 第 2 版簽署的請求,將無法向 Amazon S3 進行身分驗證。請求者將看到系統顯示錯誤,表示必須使用 Signature 第 4 版簽署請求。
即使我使用的預先簽章 URL 要求大於 7 天的簽署時間,是否也需要進行更新?
如果您使用的預先簽章 URL 要求大於 7 天的簽署時間,則目前無需採取任何動作。您可以繼續使用「 AWS 簽名版本 2」來簽署和驗證預先簽署的 URL。我們將持續追蹤,並提供如何針對預先簽章 URL 的情形遷移到 Signature 第 4 版的詳細資訊。
詳細資訊
-
如需使用簽名版本 4 的詳細資訊,請參閱簽署 AWS API 要求。
-
在 Signature 第 4 版的變更中檢視 Signature 第 2 版和 Signature 第 4 版之間的變更清單。
-
在 AWS 論壇中檢視AWS 簽章版本 4 以取代 AWS 簽名版本 2 以簽署 Amazon S3 API 請求
的貼文。 -
如果您有其他問題或疑慮,請聯絡 AWS Support。
從 Signature 第 2 版遷移至 Signature 第 4 版
如果您目前使用 Signature 第 2 版進行 Amazon S3 API 請求身分驗證,應改為使用 Signature 第 4 版。系統即將終止對 Signature 第 2 版的支援,如 AWS Amazon S3 的簽名版本 2 已關閉 (已淘汰) 中所述。
如需有關在 Amazon S3 REST API 中使用 Signature 第 4 版的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的身分驗證請求 (AWS Signature 第 4 版)。
下表列出使用 Signature 第 4 版 (SigV4) 所需的最低軟體開發套件版本。如果您將預先簽署的 URL 與 AWS Java、 JavaScript (Node.js) 或 Python (BOTO/ CLI) 開發套件搭配使用,您必須在用戶端設定中設定正確 AWS 區域 的簽章版本 4。如需在用戶端組態中設定 SigV4
的資訊,請參閱 在請求身分驗證中指定 Signature 版本。
如果您使用此軟體開發套件/產品 | 升級至此軟體開發套件版本 | 用戶端使用 Sigv4 時需要變更程式碼嗎? | 軟體開發套件文件的連結 |
---|---|---|---|
AWS SDK for Java V1 |
升級至 Java 1.11.201+ 或 v2。 | 是 | 在請求身分驗證中指定 Signature 版本 |
AWS SDK for Java V2 |
無需升級軟體開發套件。 | 否 | AWS SDK for Java |
AWS SDK for .NET V1 |
升級至 3.1.10 或更新版本。 | 是 | AWS SDK for .NET |
AWS SDK for .NET V2 |
升級至 3.1.10 或更新版本。 | 否 | AWS SDK for .NET
v2 |
AWS SDK for .NET V3 |
升級至 3.3.0.0 或更新版本。 | 是 | AWS SDK for .NET V3 |
AWS SDK for JavaScript V1 |
升級至 2.68.0 或更新版本。 | 是 | AWS SDK for JavaScript |
AWS SDK for JavaScript V2 |
升級至 2.68.0 或更新版本。 | 是 | AWS SDK for JavaScript |
AWS SDK for JavaScript V3 |
目前無需採取動作。在 2019 年第 3 季升級至主要版本 V3。 | 否 | AWS SDK for JavaScript |
AWS SDK for PHP V1 |
建議升級至 PHP 的最新版本,或至少升級至 v2.7.4,其中 S3 用戶端組態中的簽署參數應設為 v4。 | 是 | AWS SDK for PHP |
AWS SDK for PHP V2 |
建議升級至 PHP 的最新版本,或至少升級至 v2.7.4,其中 S3 用戶端組態中的簽署參數應設為 v4。 | 否 | AWS SDK for PHP |
AWS SDK for PHP V3 |
無需升級軟體開發套件。 | 否 | AWS SDK for PHP |
Boto2 |
升級至 Boto2 v2.49.0。 | 是 | Boto 2 升級 |
Boto3 |
升級至 1.5.71 (Botocore)、1.4.6 (Boto3)。 | 是 | 博托 3-適用於 AWS Python 的 SDK |
AWS CLI |
升級至 1.11.108。 | 是 | AWS Command Line Interface |
AWS CLI 第 2 版 (預覽版) |
無需升級軟體開發套件。 | 否 | AWS Command Line Interface 第二版 |
AWS SDK for Ruby V1 |
升級至 Ruby V3。 | 是 | 適用於 AWS的 Ruby V3 |
AWS SDK for Ruby V2 |
升級至 Ruby V3。 | 是 | 適用於 AWS的 Ruby V3 |
AWS SDK for Ruby V3 |
無需升級軟體開發套件。 | 否 | 適用於 AWS的 Ruby V3 |
Go |
無需升級軟體開發套件。 | 否 | AWS SDK for Go |
C++ |
無需升級軟體開發套件。 | 否 | AWS SDK for C++ |
AWS Tools for Windows PowerShell 或 AWS Tools for PowerShell Core
如果您使用的模組版本早於 3.3.0.0,則必須升級到 3.3.0.0。
如需取得版本資訊,請使用 Get-Module
cmdlet:
Get-Module –Name AWSPowershell Get-Module –Name AWSPowershell.NetCore
若要更新 3.3.0.0 版,請使用 Update-Module
cmdlet:
Update-Module –Name AWSPowershell Update-Module –Name AWSPowershell.NetCore
您可以使用有效期超過 7 天的預先簽署 URL,您將使用該 URL 傳送 Signature 第 2 版流量。