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

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

我想使用 PHP 或 S3 术语将一个 S3 存储桶的文件夹(大小为 150MB - 200MB)复制到不同区域的另一个 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 函数)到目标存储桶中。但这个过程太耗时了。

有什么建议吗

答案1

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

更新 跨区域复制,其中源存储桶和目标存储桶由不同的账户拥有,点击此处

相关内容