s3cmd:如何将文件从本地复制到具有现有结构的 S3 存储桶

s3cmd:如何将文件从本地复制到具有现有结构的 S3 存储桶

我正在尝试将文件复制s3cmd到具有现有文件夹结构的存储桶中。本地开发机器和存储桶中都已存在这两种结构。

文件夹结构如下/dir2/

dir2/
  00001/
  00002/
  00003/
  ...

问题是当我尝试将信息从本地机器复制到存储桶时,如下所示

s3cmd put --acl-public --recursive --verbose /home/user/dir1/dir2/ s3://my.bucket/assets/dir1/dir2/

我得到了以下输出。

INFO: Compiling list of local files...
INFO: Applying --exclude/--include
INFO: Summary: 0 local files to upload

看起来,由于文件夹已经存在于存储桶中,s3cmd 避免从本地机器复制文件,除了它们不在存储桶上的事实(仅是文件夹和其他不同命名的文件)。

即使里面已经存在子文件夹结构,您知道如何复制文件吗?

答案1

我发现这里的技巧是添加--include *标志。

答案2

命令s3cmd sync也许会有帮助

s3cmd sync  my-local-dir/ s3://my-test-bucket

如果需要,您可以排除一些文件,如下所示:

s3cmd sync  my-local-dir/ --exclude '*.txt' s3://my-test-bucket

如果需要将所有文件的权限更改为公共/私有,您可以运行以下命令:

s3cmd setacl s3://my-test-bucket --acl-public --recursive
s3cmd setacl s3://my-test-bucket --acl-private --recursive

相关内容