2012-06-08 50 views
15

我在Amazon S3上有一个带有后缀“.bin.gz”的文件。我想让网页浏览器将它视为一个压缩的HTML文件。所以,我可以进入Amazon S3 Web控制台(https://console.aws.amazon.com/s3/home)并导航到该文件并选择它。在那里,在属性下,我可以进入元数据选项卡并添加以下指令:尝试使用s3cmd在Amazon S3文件上设置元数据

Content-Type: text/html 
Content-Encoding: gzip 

这可按预期工作。这是很容易的部分。

现在,我想在S3上放置数百个(或可能是数百万个)文件时做同样的事情。

我已经尝试使用s3cmd与--add-header选项,但是当我尝试设置Content-Type时,给我一个签名错误。此外,我非常肯定,这样做只会影响在PUT操作时发送的标题,而不会影响与文档一起存储的元数据。

所以,我正在寻找一种方法来做到这一点,理想情况下与s3cmd。如果这是不可能的,我将不胜感激,如果有人可以建议一个能够将元数据应用于s3文件的python库。

必须有办法做到这一点,而无需在控制台中手动设置它。

回答

22

使用-m用于设置MIME类型(这将作为Content-Type头在后续请求被发送:对于快速回答

s3cmd -m text/html --add-header='Content-Encoding: gzip' put [files] s3://... 
+1

感谢我试过和内容类型的上传文件原封不动“application/octet-stream” – chaimp

+1

明白了,谢谢!我只需要在我的s3配置文件中更改'guess_mime_type = False' – chaimp

+0

@jeffp是的,我想我已经有了'False'的设置。标志在每次运行命令时都不会猜测MIME类型,如果你想在默认情况下保留该设置 – Paulpro

相关问题