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

Shi*_*Rox 4 file-upload node.js meteor

我希望用户能够上传文件,如图像,PDF,Word文档,音频文件等.我想知道是否应该将所有文件存储在本地服务器上,或者使用外部文件托管网站,我可以从中访问文件使用API​​.

如果我应该在本地保存,我该怎么做MeteorJS?你会推荐哪些套餐或方法?

sai*_*unt 8

可以在本地存储服务器上的文件,您必须将它们存储在特殊文件夹中并使用Apache或Nginx提供其内容,但我不认为这是一个好主意,因为您将浪费您的应用程序服务器资源外部存储服务(Google云端存储,Amazon S3等)可以做得更好的任务.

你甚至可以在MongoDB中存储文件,但它更糟糕,因为它们不容易缓存,而且效率低下且不可扩展.

最优雅的方式可能是将文件直接从最终用户客户端上传到外部存储服务服务器,甚至无需通过Meteor应用程序服务器.客户端只会将存储的文件URL发送到Meteor服务器,以便将它们保存在MongoDB中.外部存储服务有利于提供Gb /月的廉价定价,并提供高度的差异,在多个服务器上复制等...

有一个Meteor包实现了这个工作流程,我没有亲自测试过,但我很确定这是可靠的材料,我会试一试.

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

第一次配置可能有点难以正确,但这绝对是可行的方法.


小智 6

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