本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 S3CrtClient
用於 Amazon S3 操作
S3CrtClient
類別可在 的 1.9 版中取得, 適用於 C++ 的 AWS SDK 並提高在 Amazon S3 之間上傳和下載大型資料檔案的輸送量。如需此版本改善功能的詳細資訊,請參閱使用 v1 適用於 C++ 的 AWS SDK .9 改善 Amazon S3 輸送量
S3CrtClient
實作於AWS 通用執行時間 (CRT) 程式庫頂端。
注意
為了避免因上傳不完整或部分而產生費用,建議您在 Amazon S3 儲存貯體上啟用 AbortIncompleteMultipartUpload 生命週期規則。
此規則會指示 Amazon S3 中止未在啟動後指定天數內完成的分段上傳。超過設定的時間限制時,Amazon S3 會中止上傳,然後刪除不完整的上傳資料。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的在儲存貯體上設定生命週期組態。
先決條件
開始之前,建議您先閱讀開始使用 適用於 C++ 的 AWS SDK。
下載範例程式碼並建置解決方案,如 中所述程式碼範例入門。
若要執行範例,您的程式碼用來發出請求的使用者設定檔必須具有 AWS (針對 服務和 動作) 的適當許可。如需詳細資訊,請參閱提供 AWS 登入資料。
使用 上傳和下載物件 S3CrtClient
此範例示範如何使用 S3CrtClient
在此範例中,提供的資料檔案 ny.json
會上傳為分段上傳。這可以透過在成功執行程式後檢視偵錯日誌來確認。
如果上傳失敗,AbortMultipartUpload
則會在基礎 CRT 程式庫中發出 ,以清除任何已上傳的組件。不過,並非所有故障都可以在內部處理 (例如網路纜線已拔除)。建議您在 Amazon S3 儲存貯體上建立生命週期規則,以確保部分上傳的資料不會停留在您的帳戶 (部分上傳的資料仍應計費)。若要了解如何設定生命週期規則,請參閱探索和刪除不完整的分段上傳以降低 Amazon S3 成本
使用偵錯日誌來探索分段上傳詳細資訊
-
在 中
main()
,請注意有「TODO」註解,其中包含更新程式碼的指示。-
對於
file_name
:從程式碼註解中提供的連結下載範例資料檔案ny.json
,或使用您自己的大型資料檔案。 -
對於
region
:使用列舉將region
變數更新至 AWS 區域 您帳戶的 。若要尋找您帳戶的 區域,請登入 AWS Management Console,並在右上角找到 區域。
-
-
建立範例。
-
將變數指定的檔案複製到
file_name
可執行檔資料夾,並執行可執行s3-crt-demo
檔。 -
在您的可執行檔資料夾中,尋找最新的
.log
檔案。 -
開啟日誌檔案,選取搜尋,然後輸入
partNumber
。 -
日誌包含類似下列的項目,其中
uploadId
會針對上傳檔案的每個部分指定partNumber
和 :PUT /my-object partNumber=1&uploadId=gsk8vDbmnlA5EseDo._LDEgq22Qmt0SeuszYxMsZ9ABt503VqDIFOP8xzZI1P0zp.ToS.qo5kK16HNWogZF3KpRo.Dc7QnLZIK0BTmzCWwWoPax4T21hvP6nPdz9591F content-length:8388608 host:my-bucketasdfasdf.s3.us-east-2.amazonaws.com x-amz-content-sha256:UNSIGNED-PAYLOAD
以及
PUT /my-object partNumber=2&uploadId=gsk8vDbmnlA5EseDo._LDEgq22Qmt0SeuszYxMsZ9ABt503VqDIFOP8xzZI1P0zp.ToS.qo5kK16HNWogZF3KpRo.Dc7QnLZIK0BTmzCWwWoPax4T21hvP6nPdz9591F content-length:8388608 host:my-bucketasdfasdf.s3.us-east-2.amazonaws.com x-amz-content-sha256:UNSIGNED-PAYLOAD
請參閱 GitHub 上的完整範例