如果我想将S3上目录的所有内容下载到本地PC,我应该使用cp或sync哪个命令?
任何帮助都将受到高度赞赏。
例如,
如果我想下载"此文件夹的所有内容"在我的桌面上,它看起来像这样吗?
aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop
答案 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。
这是一个演练:
在您的机器上下载并安装 AWS CLI:
配置 AWS CLI:
确保您输入了在创建帐户时收到的有效访问和秘密密钥。
使用以下方法同步 S3 存储桶:
aws s3 sync s3://yourbucket/yourfolder /local/path
在上面的命令中,替换以下字段:
yourbucket/yourfolder
>> 您的 S3 存储桶和您要下载的文件夹。/local/path
>> 本地系统中要下载所有文件的路径。