Python boto 모듈을 통해 웹 호스팅 사용 S3 계정의 파일에 콘텐츠 유형을 설정하는 방법은 무엇입니까?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"으로 설정되어 있음을 보여줍니다. 콘솔에서 수동으로 변경하면 정상적으로 페이지에 액세스 할 수 있지만 다시 스크립트를 실행하면 잘못된 콘텐츠 유형으로 다시 설정됩니다.
내가 뭘 잘못하고 있니?
나는 완전히 확신 할 수는 없지만 올바르게 회상하면 작업의 _order_가 중요합니다. 키 조작의 재정렬을 시도하십시오. 예를 들어 컨텐츠를 설정하기 전에'Content-Type' 메타 데이터를 설정하십시오. – lanzz