Я пытаюсь загрузить несколько файлов в Amazon S3. Я могу загрузить файл в свое ведро. Однако файл должен быть в my-bucket-name, Folder1 / Folder2.
import boto3
from boto.s3.key import Key
session = boto3.Session(aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
bucket_name = 'my-bucket-name'
prefix = 'Folder1/Folder2'
s3 = session.resource('s3')
bucket = s3.Bucket(bucket_name)
objs = bucket.objects.filter(Prefix=prefix)
Я попытался загрузить в корзину с помощью этого кода и успешно:
s3.meta.client.upload_file('C:/hello.txt', bucket, 'hello.txt')
Когда я пытался загрузить этот же файл в указанную папку 2 с использованием этого кода, произошел сбой с ошибкой:
s3.meta.client.upload_file('C:/hello.txt', objs, 'hello.txt')
ERROR>>>
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid bucket name "s3.Bucket.objectsCollection(s3.Bucket(name='my-bucket-name'), s3.ObjectSummary)": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"
Итак, как мне загрузить файл в my-bucket-name, Folder1 / Folder2?