4

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

我遇到的问题是 mime 类型的自动检测没有按我的意愿工作。有没有一种相对简单的方法可以用我自己的 mime 类型映射覆盖检测?假设我希望所有.xml.gz文件都被 mime-typed 为application/x-gzip.

如何在不滚动我自己的 s3cmd 同步的情况下做到这一点?有没有办法用 s3cmd 做到这一点,或者是否有另一个工具可以很好地将文件夹同步到具有此功能的 S3?

编辑:

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

如果不是 content_type:
    content_type = self.config.default_mime_type

我补充说:

# JUN-DAI 获得正确的 .gz mimetypes 的技巧。
# 我找不到另一种方法来执行此操作,因为 mimetypes 库会去掉“.gz”后缀并确定没有它的基础文件的 mimetype。
如果文件名.endswith(".gz"):
    content_type = "应用程序/x-gzip"
    print "将 {0} 的内容类型设置为 {1}".format(filename, content_type)
4

1 回答 1

1

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

于 2019-07-17T01:25:05.287 回答