我正在构建一个用户可以上传图像的应用程序,为此我使用 S3 作为文件存储。
在应用程序的其他区域,有一些部署在 EC2 上的进程需要使用上传的图像。 这个过程需要多次图像(它会生成一些报告)并且它是多个 EC2 的一部分 - 使用弹性 beanstalk。
该过程不需要一次获取所有图像,但在它获得的每个作业中都需要它的一些子集(取决于它获得的参数)。
每个 ec2 实例都在做独立的工作——它们之间不共享文件,但它们可能需要相同的上传图像。
我现在正在做的是将所有图像从 s3 下载到 EC2 机器,因为它需要本地文件。 我读过 EFS 可以安装到 EC2,然后我可以像访问本地存储一样访问它。
我没有找到任何使用 nodejs(或其他语言)直接上传到 EFS 的示例,但我找到了一种将文件从 S3 传输到 EFS 的方法 - “DataSync”。 https://docs.aws.amazon.com/efs/latest/ug/transfer-data-to-efs.html
所以我有 3 个问题:
- 我真的不能从我的应用程序直接上传到 EFS 吗? (nodesjs + express)
- 将文件移动到 EFS 后,我能否像在 ec2 的本地存储中一样使用它?
- 一直将文件从 s3 移动到 efs 是个好主意,还是有其他方法可以解决我描述的问题?
最佳答案
对于这种确切情况,我们使用 https://github.com/kahing/goofys
它非常可靠,此外,还能够将 S3 存储桶作为文件夹安装在任何设备上 - Windows、Mac,当然还有 Linux。
也可以在 AWS 云“边界”之外工作 - 非常适合开发人员的笔记本电脑。
缺点是它确实/不能/在 Lambda 上下文中工作,但您不能拥有一切!
关于node.js - 即时将文件从 S3 移动到 AWS EFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63881057/