我正在使用boto3并尝试上传文件。如果有人在 boto3 中解释file_upload()
和put_object()
s3 bucket 方法之间的确切差异,将会有所帮助吗?
答案 0 :(得分:10)
#![cfg_attr(my_feature_name_i_made_up, windows_subsystem = "windows")]
方法由S3传输管理器处理,这意味着如果需要,它将在幕后自动处理多部分上传。
upload_file
方法直接映射到低级别的S3 API请求。它不会为您处理分段上传。它将尝试在一个请求中发送整个正文。
答案 1 :(得分:1)
我觉得可能需要注意的另一个区别是upload_file()API允许您使用回调函数来跟踪上传。您可以here进行检查。
正如boto的创建者@garnaat所提到的那样,upload_file()在幕后使用了多个部分,因此它不能直接检查端到端文件的完整性(存在一种方法),但是put_object()可以一次上传整个文件(上限为5GB),通过传递已经作为put_object()API中的参数提供的Content-MD5,更易于检查完整性。