使用PHP将一个S3存储桶的文件夹(大小150MB – 200MB)复制到另一个不同区域的S3存储桶

我想使用PHP将一个S3存储区的文件夹(大小为150MB – 200MB)复制到不同区域的另一个S3存储区,或者在S3中将所有具有S3存储区前缀的对象复制到另一个S3的前缀不同的对象桶”

我已经尝试了下面的代码,但它不工作

$s3 = new S3Client(['credentials' => $credentials, 'version' => 'latest','region' => $region,'debug' => false ]); $s3->registerStreamWrapper(); $result = $s3->uploadDirectory("s3://{$source_bucket}/{$key}",$target_‌​bucket); 

我也尝试从源桶中列出所有对象(使用listObject函数),然后将其复制(使用copyObject函数)到目标桶中。 但是这个过程耗费了太多的时间。

任何build议

根据我的评论,你应该使用跨区域复制 。 您可以在您喜欢的任何区域之间进行复制。 这里有更多的信息。

更新交叉区域复制,其中源和目标存储桶由不同帐户拥有, 在这里逐步展示 。