【问题标题】:Overwrite files with s3cmd使用 s3cmd 覆盖文件
【发布时间】:2016-03-17 10:19:40
【问题描述】:

我尝试使用 s3cmd 将文件上传到我的 S3 存储桶。工作正常,但已经存在的文件不会被覆盖,而是保存为新文件,如“filename-1.ext”。

我找到了

-f, --force (Force overwrite and other dangerous operations.)

http://s3tools.org/usage 的命令并尝试过

s3cmd put ~/Desktop/filename.ext  s3://mybucket -f

但文件仍保存为新文件且未被覆盖。 有人有什么主意吗?感谢您的帮助!

【问题讨论】:

  • 我从未见过 s3cmd 使用您描述的新文件名存储对象。你用的是什么版本?

标签: amazon-s3 s3cmd


【解决方案1】:

最近推荐使用AWS Command-Line Interface (CLI)

它有一个aws s3 cp 命令,始终保留请求的名称。

【讨论】:

    【解决方案2】:

    先删除现有文件:s3cmd del s3://bucket/file 然后放入新文件。

    【讨论】:

      【解决方案3】:

      您可以使用mc (a.k.a. Minio client)。它是用 Golang 编写的,并且在开源 Apache 许可证下可用。它适用于 Mac、Linux、Windows 和 FreeBSD。您可以使用mc cp 命令来实现您的要求。

      mc GNU/Linux 下载

      64-bit Intel from https://dl.minio.io/client/mc/release/linux-amd64/mc
      32-bit Intel from https://dl.minio.io/client/mc/release/linux-386/mc
      32-bit ARM from https://dl.minio.io/client/mc/release/linux-arm/mc
      $ chmod +x mc
      $ ./mc --help
      

      为 Amazon S3 配置 mc

      $ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
      
      • 替换为您的访问/密钥。
      • 默认情况下,mc 使用 Amazon S3 的签名版本 4。
      • mys3 是 minio 客户端的 Amazon S3 别名。

      将您的对象名称 myfile.txt 覆盖为 Amazon S3 存储桶名称 mybucket

      ./mc cp myfile.txt mys3/mybucket
      

      希望对你有帮助。

      免责声明:我为Minio工作

      【讨论】:

        猜你喜欢
        • 2020-12-29
        • 2019-10-21
        • 2014-04-08
        • 2016-11-05
        • 1970-01-01
        • 1970-01-01
        • 2019-01-02
        • 2020-12-26
        • 1970-01-01
        相关资源
        最近更新 更多