繁体   English   中英

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

[英]Downloading folders from aws s3, cp or sync?

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

任何帮助将不胜感激。

例如,

如果我想把“这个文件夹”的所有内容都下载到我的桌面上,会不会是这个样子?

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

AWS 命令​​行界面 (CLI)使用aws s3 cp将需要--recursive参数来复制多个文件。

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

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

aws s3 sync s3://mybucket/dir localdir

只需尝试即可获得您想要的结果。

文档:

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

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

如果您需要使用其他配置文件,尤其是跨帐户。 您需要在配置文件中添加配置文件

[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

刚刚使用了 AWS CLI 的第 2 版。 对于 s3 选项,现在还有一个 --dryrun 选项来显示会发生什么:

aws s3 --dryrun cp s3://bucket/filename /path/to/dest/folder --recursive

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

cp --recursive方法列出源路径并将所有内容复制(覆盖)到目标路径。

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

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

这是一个演练:

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

  2. 配置 AWS CLI:

在此处输入图片说明

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

  1. 使用以下命令同步 S3 存储桶:

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

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

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

问题: aws s3 sync s3://myBucket/this_folder/object_file C:\\Users\Desktop是否也会在 C:\Users\Desktop 中创建“this_folder”? 如果没有,复制/同步包括 S3 的文件夹结构的解决方案是什么? 我的意思是我在不同的 S3 存储桶文件夹中有很多文件按年、月、日排序。 我想将它们复制到本地并保留文件夹结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM