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

时间:2017-02-23 15:21:17

标签: php amazon-web-services amazon-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函数)到目标存储桶中。但这个过程耗费了太多时间。

任何建议

2 个答案:

答案 0 :(得分:0)

如果您不想尝试自动复制,则应使用S3控制台。

之前有人遇到过您的问题: How can I copy clone/duplicate a folder on S3?

答案 1 :(得分:0)

你真的应该使用AWS Command-Line Interface (CLI)中的aws s3 sync命令。

如果您自己编写,则需要递归所有文件并为每个对象发出单独的copy命令,以及错误处理。在Amazon S3中没有“复制此路径中的所有文件”命令。