用s3cmd覆盖文件

时间:2016-03-17 10:19:40

标签: amazon-s3 s3cmd

我尝试使用s3cmd将文件上传到我的S3 Bucket。工作得很好,但是已经存在的文件不会被覆盖,而是保存为像“filename-1.ext”这样的新文件。

我找到了

***  Test Cases ***
Sample test Case
    [Tags]    Test
    @{List1}=    Create List    a  b  c  d
    @{List2}=    Create List    1  2  3  4
    @{ListOfList}=    Create List Of List    @{List1}  @{List2}

*** Keywords ***
Create List Of List
     [Arguments]    @{List1}  @{List2}
     Log     Hello world
<{3}}的

命令并尝试了

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

但文件仍保存为新文件但未被覆盖。 有谁有想法吗?谢谢你的帮助!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

现在建议使用AWS Command-Line Interface (CLI)

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

答案 2 :(得分:1)

您可以使用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

工作