You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断使用boto3向S3存储桶的文件上传已完成?

解决方案

boto3的Object.put()方法是同步阻塞的——它会一直等到上传操作完成(成功或失败)才会返回。所以只要这个方法执行完毕且没有抛出异常,就代表上传已经完成,你直接在它后面加打印语句就生效,就像你代码里写的那样。

如果想更严谨地确认上传成功,可以检查返回结果里的HTTP状态码:

import boto3

s3 = boto3.resource('s3')

# 用with语句自动管理文件资源,避免忘记关闭
with open(imagePath, 'rb') as file:
    obj = s3.Object('s3BucketName', fileName)
    ret = obj.put(Body=file, Metadata={'example': 'test'})
    # 检查响应状态码是否为200(成功)
    if ret['ResponseMetadata']['HTTPStatusCode'] == 200:
        print('upload complete')

另外,如果你处理大文件用到分片上传,比如用upload_file方法,这些方法同样是同步执行的,方法执行完毕就代表上传流程完成。

内容的提问来源于stack exchange,提问作者seriously

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:31:02