将文件从 S3 即时移动到 AWS EFS

问题描述 投票:0回答:2

我正在构建一个用户可以上传图像的应用程序,为此我使用 S3 作为文件存储。

在应用程序的其他区域,EC2 上部署了一些需要使用上传图像的进程。 此过程需要多次图像(它会生成一些报告),并且它是多个 EC2 的一部分 - 使用弹性豆茎。

该过程不需要一次需要所有图像,而是需要它获得的每个作业的一些子集(取决于它获得的参数)。

每个 ec2 实例都在执行独立的工作 - 它们之间不共享文件,但它们可能需要相同的上传图像。

我现在正在做的是将所有图像从 s3 下载到 EC2 机器,因为它需要本地文件。 我读到 EFS 可以安装到 EC2,然后我可以像访问本地存储一样访问它。

我没有找到任何使用nodejs(或其他语言)直接上传到EFS的示例,但我找到了一种将文件从S3传输到EFS的方法 - “DataSync”。 https://docs.aws.amazon.com/efs/latest/ug/transfer-data-to-efs.html

所以我有3个问题:

  1. 我确实无法从我的应用程序直接上传到 EFS 吗? (nodesjs + Express)
  2. 将文件移动到 EFS 后,我可以像在 ec2 本地存储中一样使用它吗?
  3. 始终将文件从 s3 移动到 efs 是个好主意还是有其他解决方案可以解决我描述的问题?
node.js amazon-web-services amazon-s3 storage amazon-efs
2个回答
0
投票

对于这种具体情况,我们使用 https://github.com/kahin/goofys

它非常可靠,此外,还能够将 S3 存储桶作为文件夹安装在任何设备上 - Windows、Mac,当然还有 Linux。

也可以在 AWS 云“边界”之外工作 - 非常适合开发人员笔记本电脑。

缺点是它/不/在 Lambda 上下文中工作,但你不能拥有一切!


0
投票

文件上传到s3时触发Lambda调用ECS任务。 ECS 任务启动并挂载 EFS 卷,并将文件从 s3 复制到 EFS。 对于非常大的文件,这不会遇到 Lambda 超时的问题。 我没有代码,但如果有人已经编码了此解决方案,我会很感兴趣。

© www.soinside.com 2019 - 2024. All rights reserved.