Вы можете использовать AWS SDK и написать php или другой поддерживаемый языковой скрипт, который будет составлять список имен файлов из обоих ковшей, использовать array_diff, чтобы узнать файлы, которые не являются общими, а затем скопировать файлы из Bucket A в память затем поместить файл в ведро B.
Это хорошее место, чтобы начать: https://aws.amazon.com/sdk-for-php/
Более углубленно на создание массивов имен файлов (ключи): [http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingObjectKeysUsingPHP.html][2]
Некоторые код для получения ключей
$objects = $s3->getIterator('ListObjects', array('Bucket' => $bucket));
foreach ($objects as $object) {
echo $object['Key'] . "\n";
}
Here describes how to move keys from bucket to bucket
// Instantiate the client.
$s3 = S3Client::factory();
// Copy an object.
$s3->copyObject(array(
'Bucket' => $targetBucket,
'Key' => $targetKeyname,
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
));
Вы будете хотеть, чтобы вытащить ключи из обоих ведра, и сделать array_diff, чтобы получить результирующий набор ключей, которые вы можете затем цикл через и передачи. Надеюсь это поможет.
Is AWS Интерфейс командной строки не поддерживает эту функцию? Его действительно копирующий объект, который уже существует в ведре? – MiddleWare
прочитайте команду cp в aws: http://docs.aws.amazon.com/cli/latest/reference/s3/cp.html, она скопирует ведро в ведро, которое может выполнить работу за вас, это будет просто напишите все файлы. Если вы хотите, чтобы он исключил файлы, вам, вероятно, придется написать сценарий оболочки, чтобы выполнить то, что я описал в php выше. –