如何为S3上传文件指定ContentType?调用upload_fileobj传参报错如何解决
问题原因
你使用的boto3 S3 Bucket资源类的upload_fileobj方法不支持直接将ContentType作为顶层关键字参数传入,所有自定义HTTP头、元数据配置都需要统一放入ExtraArgs字典参数中传递。
解决方法
将你代码的最后一行修改为如下写法即可:
bucket.upload_fileobj(destination_file, fileName, ExtraArgs={'ContentType': 'application/gzip'})
可选优化建议
如果你的gzip文件是需要被浏览器直接访问的,建议额外添加ContentEncoding配置,这样浏览器收到文件后会自动解压,无需用户手动处理:
bucket.upload_fileobj(destination_file, fileName, ExtraArgs={ 'ContentType': 'application/gzip', 'ContentEncoding': 'gzip' })
内容的提问来源于stack exchange,提问作者user13067694
相关产品推荐
相关产品推荐

