Я пытаюсь переместить содержимое корзины из account-a в корзину в account-b , у меня уже есть учетные данные для них обоих.
Вот код, который я сейчас использую:
import boto3
SRC_AWS_KEY = 'src-key'
SRC_AWS_SECRET = 'src-secret'
DST_AWS_KEY = 'dst-key'
DST_AWS_SECRET = 'dst-secret'
srcSession = boto3.session.Session(
aws_access_key_id=SRC_AWS_KEY,
aws_secret_access_key=SRC_AWS_SECRET
)
dstSession = boto3.session.Session(
aws_access_key_id=DST_AWS_KEY,
aws_secret_access_key=DST_AWS_SECRET
)
copySource = {
'Bucket': 'src-bucket',
'Key': 'test-bulk-src'
}
srcS3 = srcSession.resource('s3')
dstS3 = dstSession.resource('s3')
dstS3.meta.client.copy(CopySource=copySource, Bucket='dst-bucket', Key='test-bulk-dst', SourceClient=srcS3.meta.client)
print('success')
Проблема в том, что когда я указываю имя файла в поле Key
, за которым следует /file.csv
, оно работает очень хорошо, но когда Я установил его для копирования всей папки, как показано в коде, он завершается с ошибкой и выдает это исключение:
botocore.exceptions.ClientError: Произошла ошибка (404) при вызове HeadObject операция: не найдена
Что мне нужно сделать, это переместить содержимое за один вызов, а не перебирать содержимое папки sr c, потому что это время / Это может занять много денег, так как у меня могут быть тысячи файлов для перемещения.