从 aws s3、cp 或同步下载文件夹?
Downloading folders from aws s3, cp or sync?
如果我想将S3 上某个目录的所有内容下载到我的本地PC,我应该使用cp 还是sync 哪个命令?
非常感谢任何帮助。
例如,
如果我想将 "this folder" 的所有内容下载到我的桌面,它看起来像这样吗?
aws s3 sync s3://"myBucket"/"this folder" C:\Users\Desktop
使用 AWS Command-Line Interface (CLI) 中的 aws s3 cp
将需要 --recursive
参数来复制多个文件。
aws s3 cp s3://myBucket/dir localdir --recursive
默认情况下,aws s3 sync
命令将复制整个目录。它只会复制 new/modified 个文件。
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。
这是一个演练:
在您的机器上下载并安装 AWS CLI:
配置 AWS CLI:
确保输入有效的 access 和 secret 密钥,这些密钥是您在创建帐户时收到的。
使用以下方式同步 S3 存储桶:
aws s3 sync s3://yourbucket/yourfolder /local/path
在上述命令中,替换以下字段:
yourbucket/yourfolder
>> 您的 S3 存储桶和您要下载的文件夹。
/local/path
>> 您要下载所有文件的本地系统路径。
如果我想将S3 上某个目录的所有内容下载到我的本地PC,我应该使用cp 还是sync 哪个命令?
非常感谢任何帮助。
例如,
如果我想将 "this folder" 的所有内容下载到我的桌面,它看起来像这样吗?
aws s3 sync s3://"myBucket"/"this folder" C:\Users\Desktop
使用 AWS Command-Line Interface (CLI) 中的 aws s3 cp
将需要 --recursive
参数来复制多个文件。
aws s3 cp s3://myBucket/dir localdir --recursive
默认情况下,aws s3 sync
命令将复制整个目录。它只会复制 new/modified 个文件。
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。
这是一个演练:
在您的机器上下载并安装 AWS CLI:
配置 AWS CLI:
确保输入有效的 access 和 secret 密钥,这些密钥是您在创建帐户时收到的。
使用以下方式同步 S3 存储桶:
aws s3 sync s3://yourbucket/yourfolder /local/path
在上述命令中,替换以下字段:
yourbucket/yourfolder
>> 您的 S3 存储桶和您要下载的文件夹。/local/path
>> 您要下载所有文件的本地系统路径。