我正在尝试将文件复制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