簡體   English   中英

如何使用Amazon AWS PHP SDK在區域之間復制S3對象?

[英]How to copy S3 objects between regions with Amazon AWS PHP SDK?

我正在嘗試使用Amazon AWS PHP SDK v3在兩個不同區域的兩個存儲桶之間復制Amazon AWS S3對象。 這將是一次性過程,因此我不需要cross-region replication 試圖使用copyObject()但沒有辦法指定區域。

$s3->copyObject(array(
    'Bucket'     => $targetBucket,
    'Key'        => $targetKeyname,
    'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
));

資料來源: http//docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectUsingPHP.html

您無需為該操作指定區域。 它會找出目標桶的區域並復制它。

但您可能是對的,因為在AWS CLI上存在PHP SDK上不存在的源區域和目標區域屬性。 所以你可以完成這樣的任務:

  1. 在源區域中創建臨時存儲桶。
  2. 在目標區域中創建存儲桶。
  3. 配置從臨時存儲桶到目標存儲桶的復制。
  4. 在臨時存儲桶設置到期規則中 ,所以文件將在短時間內從臨時存儲桶中自動刪除。
  5. 使用PHP SDK將對象從源存儲桶復制到臨時存儲桶。
  6. 您的所有對象也將被復制到另一個區域。
  7. 您可以在一天后刪除臨時存儲桶。

或者只使用cli並使用以下單個命令:

aws s3 cp s3://my-source-bucket-in-us-west-2/ s3://my-target-bucket-in-us-east-1/ --recursive --source-region us-west-2 --region us-east-1

不同的區域桶也可以是不同的帳戶。 其他人一直在做的是從一個存儲桶復制並在本地臨時保存數據,然后上傳到具有不同憑據的不同存儲桶。 (如果您有兩個具有不同憑據的區域存儲桶)。

CLI工具的最新更新允許您從存儲桶復制到存儲桶,如果它在同一帳戶下。 使用ÇağatayGürtürk提到的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM