Boto3:使用upload_file()

时间:2016-06-01 22:56:17

标签: python amazon-web-services amazon-s3 boto3

我正在使用boto3制作备份脚本,使用此行上传项目:

bucket.upload_file(backup_file_name,bucket_path+backup_file_name)

如何验证此文件是否真的已上传到我的存储桶?我试图用boto3 doc找到一些东西,但我没找到任何东西。这个方法是否会抛出我可以处理的任何异常?

2 个答案:

答案 0 :(得分:7)

它会提升boto3.exceptions.S3UploadFailedError。您还可以执行head_object请求以验证对象是否应该如此。如果对象不存在,这将使用代码botocore.ClientError引发404

答案 1 :(得分:1)

检查的方法很少。首先,您应该始终为您的文件制作sha256哈希值。上传时,请记住将此信息放在对象上传脚本的Meta部分中。

  • 读取整个文件,从头部元检索sha256,并重新计算已检查它是否为计数器。
  • 在PUT上为存储桶添加事件。文件成功上载后,将事件发送到您可以检查的队列。因此,在成功上传但之后您的程序崩溃时,您仍然有一个后退而不是再次重新上载文件。