我在亚马逊S3上有一个后缀为“.bin.gz”的文件。我希望Web浏览器将其视为一个gzip压缩文件。因此,我可以进入Amazon S3 Web控制台(https://console.aws.amazon.com/s3/home)并导航到该文件并选择它。在属性下,我可以转到元数据选项卡并添加以下指令:
Content-Type: text/html
Content-Encoding: gzip
这可以按预期工作。这很容易。
现在,我想在S3上PUT的时候用数百个(或者可能是数百万个)文件做同样的事情。
我尝试使用带有--add-header
选项的s3cmd,但是当我尝试设置Content-Type时,这会给我一个签名错误。此外,我非常确定这样做只会影响PUT操作时发送的标头,而不会影响与文档一起存储的元数据。
所以,我正在寻找一种方法来做到这一点,理想情况下使用s3cmd。如果那是不可能的,我将不胜感激,如果有人可以建议一个能够将元数据应用于s3上的文件的python库。
必须有一种方法可以做到这一点,而无需在控制台中手动设置它。
答案 0 :(得分:22)
使用-m
设置MIME类型(将在后续请求中作为Content-Type
标头发送:
s3cmd -m text/html --add-header='Content-Encoding: gzip' put [files] s3://...