Node.js 动态地将文件从S3移动到AWS EFS

Node.js 动态地将文件从S3移动到AWS EFS,node.js,amazon-web-services,amazon-s3,storage,amazon-efs,Node.js,Amazon Web Services,Amazon S3,Storage,Amazon Efs,我正在构建一个应用程序,用户可以上传图像,为此我使用S3作为文件存储 在应用程序的其他方面,EC2上部署了一些进程,需要使用上传的图像。 这个过程需要多次生成图像(生成一些报告),并且它是多个EC2的一部分—使用elastic beanstalk 这个过程不需要一次获得所有的图像,但需要它的一些子集(取决于它获得的参数) 每个ec2实例都在做一项独立的工作——它们之间不共享文件,但可能需要相同的上传图像 我现在要做的是将所有图像从s3下载到EC2机器上,因为它需要本地文件。 我已经读到EFS可以

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

在应用程序的其他方面,EC2上部署了一些进程,需要使用上传的图像。 这个过程需要多次生成图像(生成一些报告),并且它是多个EC2的一部分—使用elastic beanstalk

这个过程不需要一次获得所有的图像,但需要它的一些子集(取决于它获得的参数)

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

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

我没有发现任何使用nodejs(或其他lang)直接上传到EFS的例子,但我找到了一种将文件从S3传输到EFS的方法——“DataSync”。

所以我有三个问题:

  • 这是真的,我不能直接上传到EFS从我的应用程序?(nodesjs+express)
  • 在我将文件移动到EFS之后,我能像在ec2的本地存储中一样使用它吗
  • 一直将文件从s3移动到efs是一个好主意,还是有其他解决方案来解决我描述的问题

  • 你能告诉我们更多关于“一些部署在EC2上需要使用上传图像的进程”的信息吗?你是说它需要所有上传的图片吗?它是否总是需要访问每个图像,还是在首次上传后只需要访问一次?您是有多个EC2实例,还是只有一个实例?请尽可能多地告诉我们您的系统,以便我们能给您一个好的答案。我添加了更多关于EC2过程的解释@JohnRotensteinAmazon EFS是一个文件系统,可以安装在多个Amazon EC2实例上。如果您需要在多个实例之间共享存储,那么它是一种很好的使用介质。如果您只使用S3作为上传文件的地方,那么将图像存储在EFS而不是S3上是可行的。如果您的应用程序运行在EC2上,那么将映像从S3移动到EFS将是最容易的,因为它可以访问S3(通过API调用)和EFS(作为挂载的文件系统)。或者,您可以使用S3作为主存储,应用程序将在需要时从S3下载所需的图像。