题
我需要将文件上传到meteor,对其进行一些图像处理(如有必要,图像转换,从图像生成缩略图),然后将其存储在外部图像存储服务器中(s3)。这应该尽可能快。你对nodejs图像处理库有什么建议吗?还有我如何将文件上传到meteorjs?
谢谢
解决方案
我最后用以下解决方案:
1)自定义上传URL的Meteor服务器端路由
__meteor_bootstrap__.app.stack.splice (0, 0, {
route: '/upload',
handle: function (req,res, next) {
//handle upload
}.future ()
});
.
2)在文件上载文件中使用Finulidable NodeJS模块
其他提示
我发现的最简单解决方案是使用filepicker.io。将其集成到Meteor应用程序并直接插入S3是非常容易的。
在我的启动(hausor.com)中我使用 https://github.com/collectionfs/meteor-CollectionFS 以及附加插件,它支持Amazon S3文件上传和图像缩放/裁剪。
我不认为流星对上传有任何支持;也许未来计划的东西。与此同时,我要么(假设你可以用FileReader或其他东西读取文件):
a)将文件插入Mongo,然后将其保存到S3
时删除b)将其保存到客户端(不确定是否有“安全”方式来执行此操作。即,无需放弃您的凭据,但它可能值得探索)。
c)[如果您无法使用FILEREADER]使用iframe或其他东西将发布到外部服务器,您可以控制该句柄上传,然后从Meteor服务器通信。
请在这里查看我的一个答案 : 使用meteor上传和下载文件
我正在使用busboy进行文件上传,只需使用 fs = Npm.require("fs")
用于文件写入:只要把这些放在busboy:,保存到的是你上传的路径,简单的美国APACHE或文件托管和使用其他端口就可以了。.
file.pipe(fs.createWriteStream(saveTo))