将资产上传到S3无效

Rez*_*eza 4 python amazon-s3 amazon-web-services boto3

我需要将一个css文件和一个js文件上传到S3并将它们用作静态资源.如果我从S3页面通过网络上传它们,它可以工作.但是,如果我通过python脚本上传,它上传文件,但我不能让css似乎根本不起作用.

这是我的python代码,

s3 = boto3.resource('s3')
s3.meta.client.upload_file('sample.css', 'mybucket', 'sample_dir/sample.css', {'ACL': 'public-read'})
Run Code Online (Sandbox Code Playgroud)

Mic*_*bot 5

这里值得注意的条件是浏览器正确使用通过控制台上传的文件,但通过API上传的文件不是.

默认情况下,AWS/S3控制台会自动设置Content-Type:许多上传的文件类型(对于CSS,这可能应该是这样text/css)......但是API要求它由您的代码设置.

但是,您似乎没有设置它,因此浏览器可能拒绝使用css,即使它成功下载,因为Content-Type:响应头包含意外值.

(浏览器开发工具/控制台应显示错误或警告以确认此情况).