我想要的标签,我将它们上传到S3添加到文件。 Boto3支持指定与put_object方法的标签,但考虑到预期的文件大小,我使用upload_file功能,处理多上传。 但是,这个功能拒绝“标记”为关键字参数。
import boto3
client = boto3.client('s3', region_name='us-west-2')
client.upload_file('test.mp4', 'bucket_name', 'test.mp4',
ExtraArgs={'Tagging': 'type=test'})
ValueError: Invalid extra_args key 'Tagging', must be one of: ACL, CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentType, Expires, GrantFullControl, GrantRead, GrantReadACP, GrantWriteACP, Metadata, RequestPayer, ServerSideEncryption, StorageClass, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, WebsiteRedirectLocation
我找到了一种方法,直接利用S3输送管理和修改允许的关键字列表,使这项工作。
from s3transfer import S3Transfer
import boto3
client = boto3.client('s3', region_name='us-west-2')
transfer = S3Transfer(client)
transfer.ALLOWED_UPLOAD_ARGS.append('Tagging')
transfer.upload_file('test.mp4', 'bucket_name', 'test.mp4',
extra_args={'Tagging': 'type=test'})
尽管这个作品,我不认为这是最好的方式。 这可能会造成其他副作用。 目前,我没有能够找到正确的方式来实现这一目标。 任何意见将是巨大的。 谢谢。