【发布时间】:2015-02-08 21:24:07
【问题描述】:
我希望用户能够上传图像、PDF、Word 文档、音频文件等文件。我想知道我应该将所有文件存储在本地服务器上还是使用外部文件托管网站可以使用 API 访问文件。
如果我应该在本地保存,我该如何在 MeteorJS 上做到这一点?您会推荐哪些软件包或方法?
【问题讨论】:
标签: node.js file-upload meteor
我希望用户能够上传图像、PDF、Word 文档、音频文件等文件。我想知道我应该将所有文件存储在本地服务器上还是使用外部文件托管网站可以使用 API 访问文件。
如果我应该在本地保存,我该如何在 MeteorJS 上做到这一点?您会推荐哪些软件包或方法?
【问题讨论】:
标签: node.js file-upload meteor
可以将文件存储在本地服务器上,您必须将它们存储在一个特殊的文件夹中并使用 Apache 或 Nginx 提供其内容,但是我认为这不是一个好主意,因为您会浪费您的应用程序外部存储服务(Google Cloud Storage、Amazon S3 等)更好地完成任务的服务器资源。
您甚至可以将文件存储在 MongoDB 中,但更糟糕的是因为它们不容易缓存,而且效率低下且不可扩展。
最优雅的方式可能是将文件直接从最终用户客户端上传到外部存储服务服务器,甚至无需通过 Meteor 应用程序服务器。客户端只会将存储的文件 URL 发送到您的 Meteor 服务器以将它们保存在 MongoDB 中。 外部存储服务的好处是可以提供 Gb/月的廉价定价,并提供高分配性、多台服务器上的复制等......
有一个 Meteor 包可以实现这个工作流程,我没有亲自测试过,但我很确定这是可靠的材料,我会试一试。
https://github.com/CulturalMe/meteor-slingshot
第一次配置可能有点困难,但这绝对是要走的路。
【讨论】:
最好使用像 Amazon(S3 或 Cloud Front)这样的第三方服务,因为它会减少应用程序的负载。像这样的包将极大地帮助这个过程:https://atmospherejs.com/edgee/slingshot。
【讨论】: