尝试使用s3cmd在Amazon S3文件上设置元数据

时间:2012-06-08 02:01:37

标签: amazon-s3 amazon-web-services s3cmd

我在亚马逊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库。

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

1 个答案:

答案 0 :(得分:22)

使用-m设置MIME类型(将在后续请求中作为Content-Type标头发送:

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