aquí hay algunos códigos tomados directamente de amazon. Este código duplica el elemento tres veces al objetivo, lo que debe hacer es cambiarlo para que pase por cada tecla y lo agregue al lote.
<?php
// Include the AWS SDK using the Composer autoloader.
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$sourceBucket = '*** Your Source Bucket Name ***';
$sourceKeyname = '*** Your Source Object Key ***';
$targetBucket = '*** Your Target Bucket Name ***';
// Instantiate the client.
$s3 = S3Client::factory();
// Copy an object.
$s3->copyObject(array(
'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', array(
'Bucket' => $targetBucket,
'Key' => "{$sourceKeyname}-copy-{$i}",
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
));
}
try {
$successful = $s3->execute($batch);
$failed = array();
} catch (\Guzzle\Service\Exception\CommandTransferException $e) {
$successful = $e->getSuccessfulCommands();
$failed = $e->getFailedCommands();
}
+1 para la pregunta. Uno puede o no comprender el concepto de ruta de recursos S3, pero la solicitud es totalmente válida. Tal vez la pregunta es si S3 admite copiar recursos internamente (o crear múltiples rutas para el mismo recurso, ¿por qué no?) De alguna manera? Si hay muchos archivos, sería realmente ridículo tener que descargarlos todos y volver a subir ... – tishma