根据查询将图像文件从 AWS EC2 实例复制到 S3 存储桶的最佳方法

根据查询将图像文件从 AWS EC2 实例复制到 S3 存储桶的最佳方法

将选定的图像文件从生产中的 EC2 实例(Ubuntu 20.04)复制到 S3 存储桶并检查该文件是否存在于 EC2 中的最有效方法是什么?

这是一次性操作。S3 存储桶将存储用户上传的动态调整大小的图像,因此我不再需要将每幅图像预处理成多个不同大小的文件。我只需要将原始文件复制到 S3。该文件夹稍后将从 EC2 中删除。

我有一张包含原始文件名的表格。我需要检查文件是否存在于 EC2 中,并将其复制到 S3 存储桶。图像文件夹的总大小约为 20gb,表格中有大约 40k 个文件名。

我考虑通过 SFTP 或 SSH 将整个图像文件夹 (~20gb) 下载到我的本地计算机,然后在本地服务器上运行我的 Laravel 9 API 中的函数来选择文件。之后,我需要将处理后的文件夹上传到 S3。

这是否是最具成本效益的解决方案,而不会使生产服务器过载?将文件夹上传到 S3 的最佳方法是什么?它的最终大小应该在 10gb 左右,所以我想我无法通过 AWS 控制台上传它。也许运行一个函数来批量上传它?

S3 存储桶尚未投入生产,API 可以在开发模式下连接到它。

编辑:我还发现通过 SCP/SFTP 下载文件很慢(WinSCP 上为 300-400kb/s)。有没有更快的方法?

答案1

一个可能的选择是使用awsCLI 实用程序。复制功能有很多选择,恕我直言,速度应该是最快的,因为我们有来自同一供应商的源、工具和目标。

顺便说一句,您可以使用相同的awsCLI 在存储桶之间移动文件:

aws s3 cp s3://.... s3://....

相关内容