从aws s3,cp或同步下载文件夹?

时间:2015-01-13 22:04:03

标签: windows amazon-web-services amazon-s3

如果我想将S3上目录的所有内容下载到本地PC,我应该使用cp或sync哪个命令?

任何帮助都将受到高度赞赏。

例如,

如果我想下载"此文件夹的所有内容"在我的桌面上,它看起来像这样吗?

 aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop

6 个答案:

答案 0 :(得分:100)

使用AWS Command-Line Interface (CLI)中的aws s3 cp将需要--recursive参数来复制多个文件。

aws s3 cp s3://myBucket/dir localdir --recursive

默认情况下,aws s3 sync命令将复制整个目录。它只会复制新的/修改过的文件。

aws s3 sync s3://mybucket/dir localdir

只是尝试获得你想要的结果。

文档:

答案 1 :(得分:2)

如果您要下载单个文件,可以尝试以下命令:

aws s3 cp s3://bucket/filename /path/to/dest/folder

答案 2 :(得分:1)

如果您需要使用其他个人资料,尤其是交叉帐户。您需要在配置文件中添加配置文件

[profile profileName]
region = us-east-1
role_arn = arn:aws:iam::XXX:role/XXXX
source_profile = default

然后如果您只访问单个文件

aws s3 cp s3://crossAccountBucket/dir localdir --profile profileName

答案 3 :(得分:1)

仅使用了AWS CLI的版本2。对于s3选项,现在还有一个--dryrun选项,向您显示将发生的情况:

<iframe> <html> <head><head> <body> <div id="appOuterContainer"> <form> <div id="appContainer"> <div id="app"> <div id="statusBarContainer"> <!-- status bar starts here--> <div id ="myStatusBar"> <span id="one"></span> <span id="two"> <a href="#">One</a> <a href="#" aria-popup="true">Two</a> </span> </div> </div> <!-- status bar ends here--> </div> </div> </form> </div> </body> </html> </iframe>

答案 4 :(得分:0)

awk方法首先列出源路径和目标路径,并仅复制差异(名称,大小等)。

awk '{print $9}' access.log | sort | uniq -c | sort -rn | awk '{total += $1; print} END {print total, "Total"}' 方法列出了源路径,并将全部复制(覆盖)到目标路径。

如果目标路径中可能存在匹配项,我建议sync,因为目标路径上的一个LIST请求将为您节省许多不必要的PUT请求-意味着更便宜,而且可能更快。

答案 5 :(得分:0)

您有很多选择可以做到这一点,但最好的一个是使用 AWS CLI。

这是一个演练:

  1. 在您的机器上下载并安装 AWS CLI:

  2. 配置 AWS CLI:

enter image description here

确保您输入了在创建帐户时收到的有效访问秘密密钥。

  1. 使用以下方法同步 S3 存储桶:

     aws s3 sync s3://yourbucket/yourfolder /local/path
    

在上面的命令中,替换以下字段:

  • yourbucket/yourfolder >> 您的 S3 存储桶和您要下载的文件夹。
  • /local/path >> 本地系统中要下载所有文件的路径。