2013-02-20 55 views

回答

6
import boto 
from boto.s3.connection import S3Connection 
from boto.s3.key import Key 

ak = " ... key" 
sk = " ... key" 
bucketname = " ... " 

c = S3Connection(ak, sk) 

def setcontenttype(): 
    c = S3Connection(ak, sk) 
    bucket = c.get_bucket(bucketname) 
    keys = bucket.get_all_keys() 
    for key in keys: 
     ext = os.path.splitext(key.name)[1] 
     if ext == "" and not key.name.endswith("/"): 
      print key.name 
      k.set_contents_from_string(k.get_contents_as_string(), {"Content-Type":"text/html"}, True) 
2
s3_conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) 

bucket = s3_conn.get_bucket(s3_bucket_name) 

keys = bucket.list() 

for key in keys: 
    key = bucket.get_key(key.name) 
    metadata = key.metadata 
    metadata['Content-Type'] = "text/html" 
    key.copy(s3_bucket_name, key, metadata=metadata, preserve_acl=True) 

你要知道,这将取代旧的元数据,所以你应该复制所有其他元头(如高速缓存控制....)

相关问题