age*_*ntv 60 amazon-s3 amazon-web-services
我想使用 AWS S3 cli 将完整的目录结构复制到 S3 存储桶。
到目前为止,我尝试过的所有操作都将文件复制到存储桶中,但目录结构已折叠。(换种说法,每个文件都复制到bucket根目录下)
我使用的命令是:
aws s3 cp --recursive ./logdata/ s3://bucketname/
Run Code Online (Sandbox Code Playgroud)
我也试过在我的源代码(即参数的副本)上去掉尾部斜杠。我还使用通配符来指定所有文件……我尝试的每件事都只是将日志文件复制到存储桶的根目录中。
Cha*_*ith 65
我相信同步是您想要的方法。试试这个:
aws s3 sync ./logdata s3://bucketname/
Run Code Online (Sandbox Code Playgroud)
vik*_*027 17
我在使用这些命令时遇到了这个错误。
$ aws s3 cp --recursive /local/dir s3://s3bucket/
OR
$ aws s3 sync /local/dir s3://s3bucket/
Run Code Online (Sandbox Code Playgroud)
我什至想在本地安装 S3 存储桶,然后运行 rsync,即使失败(或挂起几个小时),因为我有数千个文件。
最后,s3cmd像魅力一样工作。
s3cmd sync /local/dir/ --delete-removed s3://s3bucket/ --exclude="some_file" --exclude="*directory*" --progress --no-preserve
Run Code Online (Sandbox Code Playgroud)
这不仅可以很好地完成工作并在控制台上显示相当详细的输出,而且还可以分段上传大文件。
小智 16
以下对我有用:
aws s3 cp ~/this_directory s3://bucketname/this_directory --recursive
然后 AWS 将“制作”this_directory并将所有本地内容复制到其中。
(改进Shishir的解决方案)
s3Copy.sh)path=$1 # the path of the directory where the files and directories that need to be copied are located
s3Dir=$2 # the s3 bucket path
for entry in "$path"/*; do
name=`echo $entry | sed 's/.*\///'` # getting the name of the file or directory
if [[ -d $entry ]]; then # if it is a directory
aws s3 cp --recursive "$name" "$s3Dir/$name/"
else # if it is a file
aws s3 cp "$name" "$s3Dir/"
fi
done
Run Code Online (Sandbox Code Playgroud)
/PATH/TO/s3Copy.sh /PATH/TO/ROOT/DIR/OF/SOURCE/FILESandDIRS PATH/OF/S3/BUCKETs3Copy.sh存储在主目录中,并且我想复制当前目录中的所有文件和目录,那么我运行以下命令:~/s3Copy.sh . s3://XXX/myBucket您可以轻松修改脚本以允许其他参数,s3 cp例如--include, --exclude, ...
| 归档时间: |
|
| 查看次数: |
120828 次 |
| 最近记录: |