1

私たちの meteor アプリでは、クライアントは collectionFS-filesystem を使用していくつかのファイルをアップロードし、それをアプリのルート ディレクトリにあるアップロード フォルダーに保存します。

//My CFS uploads collection
uploads = new FS.Collection("uploads", {
    stores: [new FS.Store.FileSystem("uploads", {path: "~/uploads"})]
});

後で、collectionFS-gridFS を使用してファイルをデータベースに保存したいと考えています。

//My CFS grid collection
files = new FS.Collection("files", {
    stores: [new FS.Store.GridFS("files")]
});

ファイルをデータベースに保存できるように、サーバー上のファイルからデータを読み取るにはどうすればよいですか? とにかく、CFS-filesystem コレクションのファイルを使用して、それを CFS-gridFS ファイルに変換できますか?

前もって感謝します。

4

2 に答える 2

2

@perusopersonale からの回答を受け入れました。ただし、以下は、 hereおよびhereのドキュメントに基づいて、これを達成するために使用した私のアプローチです。

uploads.find(document_id).forEach(function (fileObj) {
  var type = fileObj.type();
  var name = fileObj.name();
  var readStream = fileObj.createReadStream(fileObj.collectionName);
  var newFile = new FS.File();
  newFile.attachData(readStream, {type: type});
  newFile.name(name);
  files.insert(newFile);
});                
于 2015-12-21T09:38:45.353 に答える