通过 Boto 设置 cache-control 无效

Setting cache-control via Boto doesn't work

我正在通过 Boto 上传文件。我也在尝试设置 Cache-Control header 。但是我在S3

里看了之后没有设置

这是我的代码。

def upload(self, filename, filepath):
    k = Key(self.fusion_bucket)
    k.key = "%s/%s/%s" % (self.folder, get_current_date(), filename)
    k.set_contents_from_filename(filepath, policy='public-read')

    ext = filename.split(os.extsep)[1]
    k.set_metadata('Content-Type', 'video/%s' % (ext))
    k.set_metadata('Cache-Control', self.cache_header)

    return k.generate_url(expires_in=0, query_auth=False)

我可以确认 self.cache_header 是有价值的,它是 public,max-age= 1864000`

set_metadata 在本地 Python 字典中设置元数据。您正在寻找 set_remote_metadata 而不是:

http://boto.readthedocs.org/en/latest/ref/s3.html?highlight=set_remote_metadata#boto.s3.key.Key.set_remote_metadata