目前,我从s3中获得了一个带有前缀的文件列表,并下载了它们。我想在开始下载之前确保文件上传完整。
这怎么可能?
bucket='bucket-name'
prefix='files_prefix')
s3_client = boto3.client('s3')
objs = s3_client.list_objects_v2(Bucket=bucket, Prefix=prefix)['Contents']
for key in objs:
# need to add an if here to check if file upload completed
s3_client.download_file(bucket, key['Key'],'{}/{}'.format('./data/',key['Key']))
没有部分上传对象这样的概念。AmazonS3中的对象是不可变的。它们要么全部存在,要么根本不存在。
多部分上传由单个上传组成(适用上述规则(,但一旦多部分上传完成,它们就会转换为具有所有必需部分的单个对象。
所以。。。你什么都不需要做。