在云(heroku)上运行的应用程序没有持久的本地文件系统。
Getting Started on Heroku with Node.js说...
使用数据库或对象存储,而不是写入本地文件系统
...和Using AWS S3 to Store Static Assets and File Uploads说明了如何配置S3(即创建存储桶)-但没有说明如何使用它!
因此,如果Node.js应用程序要使用存储桶(以便从文件中读写数据),那么它将使用什么API?
fs
包)-例如,将S3存储桶安装为文件系统驱动器(对Heroku“ Dyno”中的应用程序的软件可见)作为文件系统驱动器,名为例如\data
?我主要想知道是否可以通过fs
软件包来访问它,即是否将其作为文件系统驱动器安装(名称为/data
,以便例如我可以阅读和写/data/hello.txt
。
如果可以将其作为驱动器进行访问,则可能是最简单或最熟悉的API,而且最容易开发,例如因为当应用程序在开发计算机上运行时,它可以使用本地文件系统(而不是S3),并且与部署到云中的/data
驱动器相同。
答案 0 :(得分:1)
AWS S3是使用基于http的API的对象存储服务。
它可以使用文件系统API(例如fs软件包)吗?例如,将S3存储桶安装为文件系统驱动器(对Heroku“ Dyno”中的应用程序的软件可见),例如文件系统驱动器。 \数据?
无法在文件系统中挂载S3存储桶。您仍然可以将文件保存在文件系统中,然后将其异步复制到存储桶中,但是请注意,Heroku使用临时存储,这意味着只能从单个Dyno进行访问,并且如果该Dyno停止,重新启动或移动,则所有文件在本地系统中将会丢失。
您猜到了,推荐的方法是使用S3 http API或aws-sdk。是explained in more details here。