我正在尝试使用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
答案 0 :(得分:6)
您不需要为该操作指定区域。它会找出目标存储区的区域并进行复制。
但您可能是对的,因为在AWS CLI上存在PHP SDK上不存在的源区域和目标区域属性。所以你可以完成这样的任务:
或者只使用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
答案 1 :(得分:2)
不同的区域桶也可以是不同的帐户。其他人一直在做的是从一个存储桶复制并在本地临时保存数据,然后上传到具有不同凭据的不同存储桶。 (如果您有两个具有不同凭据的区域存储桶)。
CLI工具的最新更新允许您在同一帐户下从存储桶复制到存储桶。使用像Çağatay Gürtürk提到的内容。