Boto3:使用 upload_file() 验证文件是否已上传
Boto3: Verify if the file has been uploaded using upload_file()
我正在使用 boto3 制作备份脚本,使用此行上传项目:
bucket.upload_file(backup_file_name,bucket_path+backup_file_name)
如何验证此文件是否真的已上传到我的存储桶?我试图使用 boto3 doc 查找内容,但没有找到任何内容。此方法是否抛出任何我可以处理的异常?
它将提高 boto3.exceptions.S3UploadFailedError
。您还可以执行 head_object
请求来验证对象是否看起来像它应该的那样。如果对象不存在,这将引发代码 404
的 botocore.ClientError
。
检查的方法很少。首先,您应该始终为您的文件制作 sha256 哈希。上传时,请记住将此信息放入 object 上传脚本的 Meta 部分。
- 读取整个文件,从 header 元中检索 sha256 has,并重新计算 has 以检查它是否符合要求。
- 为 PUT 上的存储桶添加一个事件。文件成功上传后,将事件发送到您可以检查的 queue。所以在成功上传但你的程序之后崩溃,你仍然有一个后退而不是再次重新上传文件。
我正在使用 boto3 制作备份脚本,使用此行上传项目:
bucket.upload_file(backup_file_name,bucket_path+backup_file_name)
如何验证此文件是否真的已上传到我的存储桶?我试图使用 boto3 doc 查找内容,但没有找到任何内容。此方法是否抛出任何我可以处理的异常?
它将提高 boto3.exceptions.S3UploadFailedError
。您还可以执行 head_object
请求来验证对象是否看起来像它应该的那样。如果对象不存在,这将引发代码 404
的 botocore.ClientError
。
检查的方法很少。首先,您应该始终为您的文件制作 sha256 哈希。上传时,请记住将此信息放入 object 上传脚本的 Meta 部分。
- 读取整个文件,从 header 元中检索 sha256 has,并重新计算 has 以检查它是否符合要求。
- 为 PUT 上的存储桶添加一个事件。文件成功上传后,将事件发送到您可以检查的 queue。所以在成功上传但你的程序之后崩溃,你仍然有一个后退而不是再次重新上传文件。