如何在服务器端将文件插入图像,fs.files 和 fs.chunks -GridFS (Ostrio/files)

How to insert a file, server-side, into images, fs.files and fs.chunks -GridFS (Ostrio/files)

我在服务器端使用 Ostrio/files 也称为流星文件(来自 VeliovGroup 或 keenethics)将文件插入 db.images、db.fs.files 和 db.fs.chunks.我的代码只能在 db.images 中插入一条记录,而在 fs.files 和 fs.chunks 中什么也没有。我的代码如下:

Images.write(this.bodyParams.file, {
  fileName: 'SignUpTermsAndConditions_' + this.bodyParams.name,
  fielId: 'abc123myId', //optional
  type: 'application/vnd.oasis.opendocument.text',
  meta: {owner: this.userId,createdAt: new Date()}
}, function (error, fileRef) {
  if (error) {
 throw error;
  } else {
 console.log(fileRef.name + ' is successfully saved to FS. _id: ' + fileRef._id);
  }
});

我可以使用以下代码将客户端的文件插入 db.images、db.fs.files 和 db.fs.chunks:

Images.insert({
 file: file,  // where var file = e.currentTarget.files[0];
 fileName: fileName + e.currentTarget.files[0].name,
 onStart: function () {
 },
 onUploaded: function (error, fileObj) {
   if (error) {
  alert('Error during upload: ' + error);
   } else {
   }
 },
 streams: 'dynamic',
 chunkSize: 'dynamic'
});

根据上面第一个片段的服务器代码无法正常工作或作为 expected.Please 帮助。

有关信息:我是如何设置我的 gridFS 的 this link。根据我上面的第二个代码片段,我的 Images.write 是按照中的代码 this link。简而言之,我正在关注文档,但我的服务器 Images.write 无法正常工作 expected.Please help!

我找到了问题的答案。我将第四个参数设置为 true,即 proceedAfterUpload=true 并将记录插入 db.fs.files 和 db.fs.chunks。这是根据 write method documentation,但有点含糊。这是修改后的代码:

Images.write(this.bodyParams.file, {
  fileName: 'SignUpTermsAndConditions_' + this.bodyParams.name,
  fielId: 'abc123myId', //optional
  type: 'application/vnd.oasis.opendocument.text',
  meta: {owner: this.userId,createdAt: new Date()}
}, function (error, fileRef) {
  if (error) {
 throw error;
  } else {
 console.log(fileRef.name + ' is successfully saved to FS. _id: ' + fileRef._id);
  }
},proceedAfterUpload=true);

就是这样。

PS: 确保 this.bodyParams.file 是一个缓冲区,这样插入的文件就不会损坏 - 感谢@dr.dimitru 建议我插入缓冲区。