我想使用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函数)到目标存储桶中。但这个过程耗费了太多时间。
任何建议
答案 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中没有“复制此路径中的所有文件”命令。