#python-3.x #amazon-s3 #boto3
#python-3.x #amazon-s3 #boto3
Вопрос:
Я пытаюсь скопировать объекты из одного каталога одного каталога в другой подкаталог.
Способ 1:
s3 = boto3.resource('s3')
copy_source = {
'Bucket': 'MY BUCKET NAME',
'Key': str(source)
}
extra_args = {
'ACL': 'public-read'
}
s3.meta.client.copy(copy_source, 'MY BUCKET NAME', str(destination), extra_args)
Приведенный выше код вызывает ошибку отказа в доступе.
Способ 2:
"""
S3 delete objects
"""
s3_client = boto3.client('s3')
BUCKET = 'MY BUCKET NAME'
PREFIX = str(object)
response = s3_client.list_objects_v2(Bucket=BUCKET, Prefix=PREFIX)
for object in response['Contents']:
print('Deleting', object['Key'])
s3_client.delete_object(Bucket=BUCKET, Key=object['Key'])
Этот был использован для удаления объектов s3. Я решил сначала реализовать функцию копирования, а затем второй успешный метод удаления. Как я могу скопировать объекты в одну корзину S3?
Комментарии:
1. Если вы получите
Access denied
, возможно, у вас нет разрешений на это.2. если у меня нет разрешений, вышеуказанные методы также должны работать неправильно? Но удаление и создание работают нормально.
3. Для копирования требуются
GetObject
разрешения, я думаю. Можете ли вы загрузить данный объект или ему также отказано?4. Загрузка работает нормально @Marcin. Позвольте мне проверить разрешение GetObject.