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