Forráskód Böngészése

Buf Fix #2093: the broken should be prior to file attachment feature introduced

Sam X. Chen 5 éve
szülő
commit
f53c624b0f
1 módosított fájl, 10 hozzáadás és 0 törlés
  1. 10 0
      models/export.js

+ 10 - 0
models/export.js

@@ -50,12 +50,18 @@ if (Meteor.isServer) {
   });
 }
 
+// exporter maybe is broken since Gridfs introduced, add fs and path
+
 export class Exporter {
   constructor(boardId) {
     this._boardId = boardId;
   }
 
   build() {
+    const fs = Npm.require('fs');
+    const os = Npm.require('os');
+    const path = Npm.require('path');
+
     const byBoard = { boardId: this._boardId };
     const byBoardNoLinked = {
       boardId: this._boardId,
@@ -134,6 +140,9 @@ export class Exporter {
     const getBase64Data = function(doc, callback) {
       let buffer = new Buffer(0);
       // callback has the form function (err, res) {}
+      const tmpWriteable = fs.createWriteStream(
+        path.join(os.tmpdir(), `tmpexport${process.pid}`),
+      );
       const readStream = doc.createReadStream();
       readStream.on('data', function(chunk) {
         buffer = Buffer.concat([buffer, chunk]);
@@ -145,6 +154,7 @@ export class Exporter {
         // done
         callback(null, buffer.toString('base64'));
       });
+      readStream.pipe(tmpWriteable);
     };
     const getBase64DataSync = Meteor.wrapAsync(getBase64Data);
     result.attachments = Attachments.find(byBoard)