我希望用户能够上传文件,如图片,PDF,Word文档,音频文件等。我想知道我是否应该将所有文件存储在本地服务器上,或者使用外部文件托管网站。可以使用API访问文件。
如果我应该在本地保存,我该如何在MeteorJS上进行保存?你会推荐哪些方法或方法?
答案 0 :(得分:8)
可以在本地存储服务器上的文件,您必须将它们存储在特殊文件夹中并使用Apache或Nginx提供其内容,但我不认为这是一个好主意,因为您将浪费您的应用程序外部存储服务(Google云端存储,Amazon S3等)可以更好地完成任务上的服务器资源。
你甚至可以在MongoDB中存储文件,但它更糟糕,因为它们不容易缓存,而且效率低下且不可扩展。
最优雅的方式可能是将文件直接从最终用户客户端上传到外部存储服务服务器,甚至无需通过Meteor应用服务器。客户端只会将存储的文件URL发送到Meteor服务器,以便将它们保存在MongoDB中。 外部存储服务有利于以每月Gb的价格提供便宜的价格,并提供高度的可用性,在多台服务器上进行复制等......
有一个Meteor软件包实现了这个工作流程,我没有亲自测试过,但我很确定这是可靠的材料,我会试一试。
https://github.com/CulturalMe/meteor-slingshot
第一次配置可能有点难以正确,但这绝对是可行的方法。
答案 1 :(得分:6)
使用像Amazon(S3或Cloud Front)这样的第三方服务是最好的,因为它可以减轻应用程序的负担。像这样的包将极大地帮助这个过程:https://atmospherejs.com/edgee/slingshot。