我想将文件从 Perforce 中的某个位置同步到 S3 存储桶。我已经设置了一个 Jenkins 作业,它使用 s3cmd 将文件从 Perforce 同步到 S3。
我遇到的问题是,mime 类型的自动检测没有按照我的意愿工作。是否有一种相对简单的方法可以使用我自己的 MIME 类型映射覆盖检测?假设我想要所有 .xml.gz
要以 MIME 类型输入的文件 application/x-gzip
.
如何在不滚动我自己的 s3cmd 同步的情况下执行此操作?有没有办法用 s3cmd 做到这一点,或者是否有另一种工具可以将文件夹同步到具有此功能的 S3?
编辑:
这不是我要找的,但如果其他人有问题,它至少可以解决问题。我修改了 S3.py
在看起来像这样的片段之后:
如果不是 content_type:
content_type = self.config.default_mime_type
我补充说:
# JUN-DAI 的 HACK 使 .gz mimetypes 正确。
# 我找不到其他方法来做到这一点,因为 mimetypes 库去掉了“.gz”后缀,并在没有它的情况下确定了底层文件的 mimetype。
if filename.endswith(".gz"):
content_type = "应用程序/x-gzip"
打印“将 {0} 的内容类型设置为 {1}”.format(filename, content_type)
最佳答案
现在您可以使用选项 --no-guess-mime-type --default-mime-type "application/x-gzip"
与 s3cmd 同步或放置。
关于amazon-s3 - 使用 s3cmd 同步时如何指定 MIME 类型映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284531/