Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从服务器读取CollectionFS文件';在meteor.com上托管时的文件系统_Meteor_Amazon Ec2_Collectionfs - Fatal编程技术网

从服务器读取CollectionFS文件';在meteor.com上托管时的文件系统

从服务器读取CollectionFS文件';在meteor.com上托管时的文件系统,meteor,amazon-ec2,collectionfs,Meteor,Amazon Ec2,Collectionfs,我试着让用户上传一个txt文件,然后让他点击一个按钮“分析”,然后执行一些分析 我的应用程序在本地运行,我使用FS.Collection和文件系统,但是我在部署到meteor.com时遇到了一些问题。这是我的收藏: FS.debug = true; Uploads = new FS.Collection('uploads', { stores: [new FS.Store.FileSystem('uploads')] }); 下面是我如何读取上传的文件: var fs = Npm.r

我试着让用户上传一个txt文件,然后让他点击一个按钮“分析”,然后执行一些分析

我的应用程序在本地运行,我使用FS.Collection和文件系统,但是我在部署到meteor.com时遇到了一些问题。这是我的收藏:

FS.debug = true;

Uploads = new FS.Collection('uploads', {
    stores: [new FS.Store.FileSystem('uploads')]
});
下面是我如何读取上传的文件:

var fs = Npm.require('fs');
var readedFile = fs.readFileSync(process.env.PWD+'/.meteor/local/cfs/files/uploads/+file.copies.uploads.key, 'utf-8');
上面的代码在本地运行,但在我部署到meteor.com之后就不行了。在调试消息中,我看到类似这样的消息:
Error:enoint,没有这样的文件或目录


因此,我不知道在部署应用程序时如何读取文件,您将如何执行?或者您认为我应该将应用程序部署到Amazon EC2吗?我担心部署到amazon会遇到同样的问题…

这可能就是您想要的软件包:


它也有一个很好的UI,比FSCollection麻烦少多了。

使用http下载通过collectionFS上传的文件的简短示例

var file = Uploads.findOne({ _id: myId }); // or however you find it
  HTTP.get(file.url(),function(err,result){
    // this will be async obviously
    if ( err ) console.log("Error "+err+" downloading file"+myId);
    else {
      var content = result.content; // the contents of the file
      // now do something with it
    }
  });

请注意,您必须
meteor添加http
才能访问http包。

我怀疑meteor.com不允许您访问本地文件系统。如果对collectionFS文件对象使用
.url()
方法,则可以通过http获取它,而不是直接从服务器读取它。当您决定使用gridfs或S3作为存储适配器而不是服务器本地磁盘时,这也将保护您。您的意思是在meteor中使用文件的url发出http get请求吗?,如果您能提供一些简单的示例,我将非常感谢您忘记添加内容,您首先需要
meteor添加http
包以使用http.get