你如何通过Python的boto模块在启用Web托管的S3帐户中设置文件的内容类型?
我正在执行以下操作:
然而,当我从http://mybucket.s3-website-us-east-1.amazonaws.com/index.html访问它时,我的浏览器提示我下载该文件,而不是像普通网页一样提供服务。
在S3管理控制台中查看元数据时,显示
我做错了什么?
我正在执行以下操作:
from boto.s3.connection import S3Connection
from boto.s3.key import Key
from boto.cloudfront import CloudFrontConnection
conn = S3Connection(access_key_id, secret_access_key)
bucket = conn.create_bucket('mybucket')
b = conn.get_bucket(bucket)
b.set_acl('public-read')
fn = 'index.html'
template = '<html>blah</html>'
k = Key(b)
k.key = fn
k.set_contents_from_string(template)
k.set_acl('public-read')
k.set_metadata('Content-Type', 'text/html')
然而,当我从http://mybucket.s3-website-us-east-1.amazonaws.com/index.html访问它时,我的浏览器提示我下载该文件,而不是像普通网页一样提供服务。
在S3管理控制台中查看元数据时,显示
Content-Type
实际上被设置为“application/octet-stream”。如果我在控制台中手动更改它,我就可以正常访问该页面,但是如果我再次运行我的脚本,则会将其重置回错误的内容类型。我做错了什么?
Content-Type
元数据。 - lanzz