在我的流星应用程序中,服务器尝试下载一些文件以将它们存储在文件系统中。我使用 Meteor.http 包来执行此操作,但实际上,如果下载文件,它们似乎已损坏。
var fileUrl = 'http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=5'; //for example
Meteor.http.call("GET", fileUrl, function funcStoreFile(error, result) {
"use strict";
if (!error) {
var fstream = Npm.require('fs'),
filename = './.meteor/public/storage/' + collectionId;
fstream.writeFile(filename, result.content, function funcStoreFileWriteFS(err) {
if (!err) {
var Fiber = Npm.require('fibers');
Fiber(function funcStoreImageSaveDb() {
MyfileCollection.update({_id: collectionId}, {$set: {fileFsPath: filename}});
}).run();
} else {
console.log('error during writing file', err);
}
});
} else {
console.log('dl file FAIL');
}
});
我做了一个从 public/storage 到 ../.meteor/public/storage 的符号链接,以启用从 url 直接下载(http://localhost:3000/storage/myfileId)
当我比较用这个系统下载的文件和直接从浏览器下载的相同文件时,它们是不同的。我的观念有什么问题?