使用过滤器将文件从 S3 增量复制到 EBS 存储

古斯塔夫·拉斯穆森

我希望从一个 AWS 帐户(源)中的 AWS S3 存储桶中移动大量文件,具有遵循以下模式的系统文件名:

my_file_0_0_0.csv
...
my_file_0_7_200.csv

进入另一个 AWS 账户(目标)中的 S3 存储桶。这些需要由 ec2 实例(以克服 IAM 访问限制)逐步移动到附加的 EBS 卷(以克服存储限制)。

澄清:

在文件名中,有 3 个数字由下划线分隔,例如:_a_b_c,其中 a 始终为 0,b 从 0 开始一直到 7,而 c 从 0 到最大 200(不保证它总是会达到 200)。

(我有一个通过 Putty 连接到 EC2 实例的 SSH 会话)。

1. 迭代:

所以我在第一次迭代中尝试做的是从 S3 复制所有文件,这些文件的名称具有以下模式:my_file_0_0_*.csv. 这可以通过以下命令完成:

aws s3 cp s3://my_source_bucket_name/my_folder/ . --recursive --exclude "*" --include "my_file_0_0_*" --profile source_user

从这里,我使用以下命令将其上传到我的目标存储桶:

aws s3 cp . s3://my_target_bucket_name/my_folder/ --recursive --profile source_user

最后从 ec2 实例的 ebs 卷中删除文件rm *

2. 迭代:

aws s3 cp s3://my_source_bucket_name/my_folder/ . --recursive --exclude "*" --include "my_file_0_1_*" --profile source_user

这一次,我只得到了一些带有 pattern 的文件my_file_0_1_*,因为它们的组合文件大小达到了 100 GiB,这是我的 ebs 卷的限制。在这里,我遇到了文件名按字母顺序排序的问题,而不是按名称中的数字按数字排序。例如:

my_file_0_1_0.csv
my_file_0_1_1.csv
my_file_0_1_10.csv
my_file_0_1_100.csv
my_file_0_1_101.csv
my_file_0_1_102.csv
my_file_0_1_103.csv
my_file_0_1_104.csv
my_file_0_1_105.csv
my_file_0_1_106.csv
my_file_0_1_107.csv
my_file_0_1_108.csv
my_file_0_1_109.csv
my_file_0_1_11.csv

在将它们移动到目标 S3 存储桶并从 ebs 中删除它们之后,挑战在于以my_file_0_1_*系统的方式移动带有模式的剩余文件有没有办法通过使用来实现这一目标,例如findgrepawk或类似的?我是否需要先将一些文件名切片转换为整数?

巴拉特武图库里

您可以使用sort -Vcommand 来考虑文件的正确版本控制,然后一次对每个文件或文件列表调用 copy 命令。

ls | sort -V

如果您使用的是 GNU 系统,您还可以使用ls -v. 这在 MacOS 中不起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

增量表:仅从 S3 存储桶复制到特定分区文件夹

将文件列表从 S3 存储桶复制到 S3 存储桶

使用 AZCopy 将 AWS s3 存储桶复制到 Azure 存储时出错

将文件从Box文件夹复制到AWS s3存储桶

尝试将文件复制到AWS S3存储时出错

将文件从 AWS s3 (SSE) 存储桶复制到谷歌云

将 Python 中的大文件复制到 S3 存储桶时出现 OSError

将多个文件从 hadoop 复制到 s3 存储桶

将文件从 AWS S3 复制到 Azure 存储存档层

将文件从 S3 存储桶复制到 Google Cloud Storage

我无法将主文件夹复制到 s3 存储桶

从远程服务器复制到s3的文件在s3存储桶上不显示状态

解压缩文件并将其从Web复制到s3存储桶

将数据从Azure Blob存储复制到AWS S3

如何将S3存储桶复制到Kubernetes节点上

无法将构建工件复制到 S3 存储桶

s3cmd:将文件从s3中的加密存储桶复制到本地计算机

每次将文件发布到存储桶时都将 s3 文件复制到 ec2?

使用不同的密钥将内容从一个S3存储桶复制到另一个S3存储桶

当我尝试将文件复制到 aws S3 存储桶时,Jenkins 作业失败

如何将整个文件夹从 s3 存储桶复制到 ec2 实例

将文件从 s3 存储桶复制到另一个 AWS 账户

将CSV文件从公共Git子目录复制到S3存储桶

如何将数据从EBS卷传输到S3存储桶?

如何仅使用AWS CodeBuild服务将github代码复制到s3存储桶?

如何将公共S3文件列表复制到私有S3存储桶

AWS CLI在s3存储桶中搜索文件并复制到其他文件夹

使用Node将文件从一个AWS S3存储桶复制到另一个存储桶

一种将数据从一个S3复制到另一个S3存储桶的自动方法