我该如何在Meteor中处理文件上传?

4
我希望用户能够上传各种文件,如图像、PDF、Word文档、音频文件等。我想知道是应该将所有文件都存储在本地服务器上,还是使用外部文件托管网站,并通过API访问这些文件。
如果应该本地存储,那么在MeteorJS上如何实现呢?你推荐哪些包或方法来实现?
2个回答

8
在您的服务器上本地存储文件是可能的,您需要将它们存储在一个特殊的文件夹中并使用Apache或Nginx提供其内容,但我认为这不是一个好主意,因为您会浪费应用程序服务器资源在外部存储服务(Google Cloud Storage、Amazon S3等)更好完成的任务上。
您甚至可以将文件存储在MongoDB中,但这样做更糟糕,因为它们不容易缓存且效率低下且不可扩展。
最优雅的方式可能是直接从最终用户客户端上传您的文件到外部存储服务服务器,甚至不经过您的Meteor应用服务器。客户端只会将存储的文件URL发送到您的Meteor服务器以在MongoDB中保留它们。外部存储服务有廉价的Gb/月定价和高可用性、多台服务器复制等优势……
有一个Meteor包实现了这个工作流程,我个人没有测试过,但我相信这是可靠的材料,我会试一试。

https://github.com/CulturalMe/meteor-slingshot

配置可能第一次会有些难以理解,但这绝对是正确的方法。

6

使用像亚马逊(S3或Cloud Front)这样的第三方服务最好,因为它可以减轻应用程序的负担。类似于这样的软件包将极大地帮助这个过程:https://atmospherejs.com/edgee/slingshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接