Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awsdocs
GitHub Repository: awsdocs/amazon-s3-developer-guide
Path: blob/master/code_examples/php_examples/S3examples/s3-copying-objects.php
4084 views
1
<?php
2
// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
// SPDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-s3-developer-guide/blob/master/LICENSE-SAMPLECODE )
4
5
require 'vendor/autoload.php';
6
7
use Aws\S3\S3Client;
8
9
$sourceBucket = '*** Your Source Bucket Name ***';
10
$sourceKeyname = '*** Your Source Object Key ***';
11
$targetBucket = '*** Your Target Bucket Name ***';
12
13
$s3 = new S3Client([
14
'version' => 'latest',
15
'region' => 'us-east-1'
16
]);
17
18
// Copy an object.
19
$s3->copyObject([
20
'Bucket' => $targetBucket,
21
'Key' => "{$sourceKeyname}-copy",
22
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
23
]);
24
25
// Perform a batch of CopyObject operations.
26
$batch = array();
27
for ($i = 1; $i <= 3; $i++) {
28
$batch[] = $s3->getCommand('CopyObject', [
29
'Bucket' => $targetBucket,
30
'Key' => "{targetKeyname}-{$i}",
31
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
32
]);
33
}
34
try {
35
$succeeded = $s3->execute($batch);
36
$failed = array();
37
} catch (CommandTransferException $e) {
38
$succeeded = $e->getSuccessfulCommands();
39
echo "Failed Commands:" . PHP_EOL;
40
foreach ($e->getFailedCommands() as $failedCommand) {
41
echo $e->getExceptionForFailedCommand($FailedCommand)->getMessage() . PHP_EOL;
42
}
43
}
44
45