使用 复制对象适用于 PHP 的 AWS 开发工具包 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

使用 复制对象适用于 PHP 的 AWS 开发工具包

本主题指引您使用从第3版中使用的课程的类别 适用于 PHP 的 AWS 开发工具包 如何复制单个对象和多个对象 Amazon S3从一个桶到另一个桶或同一个桶内。

本主题假设您已经遵循了说明 使用适用于 PHP 的 AWS 开发工具包和运行 PHP 示例 并且 适用于 PHP 的 AWS 开发工具包 已正确安装。

以下任务将引导您使用 PHP 开发工具包类复制已存储在 中的对象。Amazon S3.

以下任务将引导您使用 PHP 类在 中创建对象的多个副本。Amazon S3.

1

创建一个 Amazon S3 客户端 Aws\S3\S3Client 类构造器。

2

要创建对象的多个拷贝,请将一批呼叫运行到 Amazon S3 客户 getcommand() 方法,该方法是从 AWS\CommandInterface 类。您提供 CopyObject 命令作为第一个参数,提供包含源存储桶、源键名、目标存储桶和目标键名的数组作为第二个参数。

例 复制 中的对象Amazon S3

以下PHP示例说明了 copyObject() 复制单个对象的方法 Amazon S3 使用一批呼叫 CopyObject 使用 getcommand() 创建对象多个拷贝的方法。

require 'vendor/autoload.php'; use Aws\S3\S3Client; $sourceBucket = '*** Your Source Bucket Name ***'; $sourceKeyname = '*** Your Source Object Key ***'; $targetBucket = '*** Your Target Bucket Name ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Copy an object. $s3->copyObject([ 'Bucket' => $targetBucket, 'Key' => "{$sourceKeyname}-copy", 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", ]); // Perform a batch of CopyObject operations. $batch = array(); for ($i = 1; $i <= 3; $i++) { $batch[] = $s3->getCommand('CopyObject', [ 'Bucket' => $targetBucket, 'Key' => "{targetKeyname}-{$i}", 'CopySource' => "{$sourceBucket}/{$sourceKeyname}", ]); } try { $results = CommandPool::batch($s3, $batch); foreach($results as $result) { if ($result instanceof ResultInterface) { // Result handling here } if ($result instanceof AwsException) { // AwsException handling here } } } catch (\Exception $e) { // General error handling here }

相关资源