meteor的CollectionFS下载错误:结束后写

这个问题只出现在生产阶段,发展阶段 – 就像一个魅力。

当用户尝试通过helper生成的链接下载文件时:

<a href="{{fileRef.url download=true}}">Download</a> 

在服务器端node.js是失败的, forever重新启动它,并回应这个错误:

 Error: write after end at ServerResponse.OutgoingMessage.write (_http_outgoing.js:413:15) at ServerResponse.http.OutgoingMessage.write (packages/meteorhacks:inject-data/lib/server.js:56:1) at ServerResponse.res.write (/var/node/bundle/programs/server/npm/webapp/node_modules/connect/lib/middleware/compress.js:110:17) at ServerResponse.res.end (/var/node/bundle/programs/server/npm/webapp/node_modules/connect/lib/middleware/compress.js:116:14) at sendResponseIfDone (packages/cfs:http-methods/http.methods.server.api.js:543:1) at IncomingMessage.<anonymous> (packages/cfs:http-methods/http.methods.server.api.js:568:1) at IncomingMessage.emit (events.js:104:17) at _stream_readable.js:908:16 at process._tickCallback (node.js:355:11) error: Forever detected script exited with code: 1 error: Script restart attempt #1 

在客户端的文件下载只是部分,我猜 – 只有第一块。 我们试图改变nginx反向代理caching,caching设置,甚至closures – 根本没有帮助。

任何想法如何解决,或在哪里寻找错误? 任何帮助,非常感激。

集合初始化代码:

 path = (if (NODE_ENV is "development") then "/uploads/Addresses" else "/builded/bundle/programs/server/assets/app/uploads/Addresses") Collections.Addresses = new FS.Collection 'Addresses', stores: [ new FS.Store.FileSystem 'Addresses' , path: path ] , filter: allow: extensions: ['xls', 'xlsx'] if Meteor.isServer Meteor.startup -> Collections.Addresses.allow insert: (userId) -> return checkFunc userId remove: (userId) -> return checkFunc userId update: (userId) -> return checkFunc userId download: (userId) -> return checkFunc userId Meteor.publish 'Addresses', (ProjectID) -> check ProjectID, Mongo.ObjectID if checkFunc this.userId Collections.Addresses.find 'metadata.project_id': ProjectID else throw new Meteor.Error 403, 'Permission denied' 

@ tristan-foureur谢谢你的回应。 但是,我们坚持使用这个软件包,它也大大减慢了我们的应用程序的速度,不支持文件名中的非拉丁文符号,并限制了大文件的上传/下载。

我们花了两周的时间进行研究,并创build了我们自己的软件包: Meteor-Files 。 它圆滑,易于使用。 你的手解开了,你可以自由地对上传的文件做任何事情,修改,调整图像大小,甚至可以存储到GridFS。

我们希望我们的软件包能帮助解决上传/下载文件给其他开发者的简单任务。 陨石团结!

Interesting Posts