nodejs在本地文件系统和Amazon S3文件系统之间切换的最佳方法是什么?

我正在寻找使用本地文件系统和Amazon S3文件系统进行切换的最佳方式。

我想理想情况下,我想要一个封装到我可以编码的两个文件系统。 configuration更改会告诉包装器使用哪个文件系统。 这对我来说很有用,因为开发人员可以使用本地文件系统,但是我们的托pipe环境只需更改configuration选项即可使用Amazon S3。

有没有现有的包装这样做? 我应该写我自己的包装? 有没有另一种方法我不知道会更好?

我喜欢你的想法,build立一个可以使用本地文件系统或S3的包装。 我不知道有什么可以为你提供的,但如果你发现任何东西,肯定会有兴趣听到。

另一种方法是使用某种S3文件系统挂载,以便您的应用程序始终可以使用标准文件系统I / O,但是如果您的系统将该位置configuration为S3挂载,那么可能会将数据写入S3。 我不推荐这种方法,因为我从来没有听说过没有问题的S3安装解决scheme。

另一种方法是只devise你的应用程序使用S3,然后在你的开发环境中使用某种S3兼容的本地对象存储。 这个问题有几个答案可以在开发过程中提供S3兼容的服务。

有一个名为s3fs的项目,在S3之上提供了POSIX文件系统function的一个子集。 没有本地亚马逊提供的方式来做到这一点。

但是,您应该长时间思考这是否是一个明智的select。 S3是一个对象存储,不是一个普通的文件系统,它具有完全不同的性能和延迟特性。

如果你正在寻找高iops,那么NAS风格的存储,然后亚马逊EFS(预览)会更合适。 或者使用EBS卷或者SoftNAS或者Gluster来推出自己的NFS / CIFS解决scheme 。