ChatGPT解决这个技术问题 Extra ChatGPT

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

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

任何帮助将不胜感激。

例如,

如果我想将“这个文件夹”的所有内容下载到我的桌面,会是这样吗?

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

J
John Rotenstein

使用 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

只需进行实验以获得您想要的结果。

文档:

cp 命令

同步命令


我花了几分钟才弄清楚在哪里可以获得 aws cli。这是:aws.amazon.com/cli
@dnafication 请创建一个新问题,而不是在对旧问题的评论中提出问题。
aws s3 cp s3://myBucket/dir localdir --recursive。这就像一个魅力。如果跳过 --recursive 标志,它会抛出一个相当无用的错误:fatal error: An error occurred (404) when calling the HeadObject operation: Key "myBucket" does not exist
但是,如果文件单个 zip 以 GB 为单位的大尺寸,建议是什么?
@KanagaveluSugumar 请创建一个新问题,而不是通过对旧问题的评论来提问。
M
Marc Duby

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

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


F
Fabien

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

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

m
myPavi

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

[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


D
Darshan Lila

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

这是一个演练:

在您的机器上下载并安装 AWS CLI:使用 MSI 安装程序 (Windows) 安装 AWS CLI。使用适用于 Linux、OS X 或 Unix 的捆绑安装程序安装 AWS CLI。配置 AWS CLI:

https://i.stack.imgur.com/1UvKq.png

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

使用以下命令同步 S3 存储桶:aws s3 sync s3://yourbucket/yourfolder /local/path

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

yourbucket/yourfolder >> 您的 S3 存储桶和您要下载的文件夹。

/local/path >> 本地系统中要下载所有文件的路径。


g
grnc

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

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

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