2012-07-27 42 views
4

我需要上传一个文件到流星,做一些图像处理(如果需要,图像转换,从图像生成缩略图),然后将其存储在外部图像存储服务器(s3)。这应该尽可能快。 你对nodejs图像处理库有什么建议吗? 如何我可以上传文件到meteorjs?meteorjs图像上传/转换

谢谢

回答

4

我结束了以下解决方案:

1)自定义上传网址

__meteor_bootstrap__.app.stack.splice (0, 0, { 
    route: '/upload', 
    handle: function (req,res, next) { 
     //handle upload 
    }.future() 
}); 

2)使用强大的NodeJS模块文件中的函数内流星服务器端路线上传

+1

如何在流星中使用Formidable nodejs?有没有办法来安装它? – saada 2013-02-27 19:07:01

0

我不认为流星有任何支持上传;也许有些事情是在未来计划的。在此期间,我会是(假设你可以读取该文件与的FileReader或东西):

一)文件插入蒙戈,然后删除它时,它被保存到S3

B)从客户端保存到S3(不知道是否有“安全”的方式来做到这一点..即不放弃您的凭据,但它可能是值得探讨的)。

c)[如果你不能使用FileReader]使用一个iframe或其他东西POST到外部服务器,你可以控制,它可以处理上传,然后从流星服务器与它通信。

+0

我怎样才能实现?我的意思是我需要将数据发布到一些流星网址,它可以将其解释为二进制数据。我怎样才能做到这一点 ? – user1528384 2012-07-29 19:51:19

+0

不,我的意思是你用FileReader将输入数据读出到二进制blob中,然后将其插入到mongo db中。如果您需要将表单数据发布到URL,您将需要尝试c) – 2012-07-30 01:52:28

4

我找到的最简单的解决方案是使用FilePicker.io。将其集成到您的Meteor App并直接插入S3非常容易。

3

在我的启动(hausor.com)我使用https://github.com/CollectionFS/Meteor-CollectionFS和其他插件,它支持亚马逊S3文件上传和图像缩放/裁剪。

+0

嗨,那看起来像我正在寻找。你可以更具体一些,并解释(post gist)你如何做到这一点/你使用什么插件进行图像缩放/裁剪?谢谢! – 2015-02-18 21:26:12

0

请检查我的答案在这里的一个:File upload and download using meteor

我使用打杂进行文件上传,只是使用的文件写入fs = Npm.require("fs"): 只要把这些里面打杂:,保存到是你上传的路径,简单的美国阿帕奇或档案托管,并使用它的其它端口..

file.pipe(fs.createWriteStream(saveTo))