如何在使用s3cmd同步时指定mime-type映射?

时间:2013-11-29 11:19:05

标签: amazon-s3 s3cmd

我想将文件从Perforce中的某个位置同步到S3存储桶。我已经设置了一个Jenkins作业,该作业使用s3cmd将文件从Perforce同步到S3。

我遇到的问题是mime类型的自动检测不能正常工作。是否有一种相对简单的方法来覆盖我自己的mime类型映射检测?假设我希望所有.xml.gz个文件都是mime-typed application/x-gzip

如果不滚动我自己的s3cmd同步,我该怎么做?有没有办法用s3cmd做到这一点,还是有另一种工具可以将文件夹同步到具有此功能的S3?

修改

这不是我想要的,但如果其他人有问题,它至少可以解决问题。我修改了S3.py并在看起来像这样的代码段之后:

if not content_type:
    content_type = self.config.default_mime_type

我补充说:

# JUN-DAI'S HACK TO GET .gz mimetypes correct.
# I couldn't find another way to do this as the mimetypes library strips out the ".gz" suffix and determines the mimetype of the underlying file without it.
if filename.endswith(".gz"):
    content_type = "application/x-gzip"
    print "Setting content-type of {0} to {1}".format(filename, content_type)

1 个答案:

答案 0 :(得分:0)

现在,您可以将选项--no-guess-mime-type --default-mime-type "application/x-gzip"与s3cmd sync或put一起使用。