在上传文件时添加以下代码以确保文件上传完成后再访问:
import boto3
s3 = boto3.client('s3')
response = s3.put_object(
Body='sample text',
Bucket='my-bucket',
Key='my-file.txt'
)
# 等待文件上传完成
s3.meta.client.get_waiter('object_exists').wait(
Bucket='my-bucket',
Key='my-file.txt'
)
# 访问文件
response = s3.get_object(
Bucket='my-bucket',
Key='my-file.txt'
)
body = response['Body'].read()
上述代码使用 get_waiter()
方法等待文件上传完成。该方法将使用默认策略递增地轮询 head_object()
直到文件存在并返回 True
。