Skip to content

Commit f9baf15

Browse files
committed
Merge pull request #1 from louis49/solution2
Merging Meteor-Community-Packages#914
2 parents 593960c + 39a7b68 commit f9baf15

2 files changed

Lines changed: 29 additions & 4 deletions

File tree

packages/tempstore/tempStore.js

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,16 @@ FS.TempStore.createWriteStream = function(fileObj, options) {
293293
setObj['keys.' + chunkNum] = result.fileKey;
294294
tracker.update(selector, {$set: setObj});
295295

296+
297+
var temp = tracker.findOne(selector);
298+
299+
if(!temp){
300+
FS.debug && console.log('NOT FOUND FROM TEMPSTORE => EXIT (REMOVED)');
301+
return;
302+
}
303+
296304
// Get updated chunkCount
297-
var chunkCount = FS.Utility.size(tracker.findOne(selector).keys);
305+
var chunkCount = FS.Utility.size(temp.keys);
298306

299307
// Progress
300308
self.emit('progress', fileObj, chunkNum, chunkCount, chunkSum, result);
@@ -304,6 +312,9 @@ FS.TempStore.createWriteStream = function(fileObj, options) {
304312
// We no longer need the chunk info
305313
var modifier = { $set: {}, $unset: {chunkCount: 1, chunkSum: 1, chunkSize: 1} };
306314

315+
if(!fileObj.instance_id)
316+
modifier.$set.instance_id = process.env.COLLECTIONFS_ENV_NAME_UNIQUE_ID ? process.env[process.env.COLLECTIONFS_ENV_NAME_UNIQUE_ID] : process.env.METEOR_PARENT_PID;
317+
307318
// Check if the file has been uploaded before
308319
if (typeof fileObj.uploadedAt === 'undefined') {
309320
// We set the uploadedAt date
@@ -324,8 +335,14 @@ FS.TempStore.createWriteStream = function(fileObj, options) {
324335
// XXX is emitting "ready" necessary?
325336
self.emit('ready', fileObj, chunkCount, result);
326337
} else {
327-
// Update the chunkCount on the fileObject
328-
fileObj.update({ $set: {chunkCount: chunkCount} });
338+
339+
var modifier = { $set: {}};
340+
if(!fileObj.instance_id)
341+
modifier.$set.instance_id = process.env.COLLECTIONFS_ENV_NAME_UNIQUE_ID ? process.env[process.env.COLLECTIONFS_ENV_NAME_UNIQUE_ID] : process.env.METEOR_PARENT_PID;
342+
343+
modifier.$set.chunkCount = chunkCount;
344+
345+
fileObj.update(modifier);
329346
}
330347
});
331348

packages/worker/fileWorker.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@ FS.FileWorker.observe = function(fsCollection) {
4343

4444
// Initiate observe for finding files that have been stored so we can delete
4545
// any temp files
46+
/*
4647
fsCollection.files.find(getDoneQuery(fsCollection.options.stores)).observe({
4748
added: function(fsFile) {
4849
FS.debug && console.log("FileWorker ADDED - calling deleteChunks for", fsFile._id);
4950
FS.TempStore.removeFile(fsFile);
5051
}
5152
});
53+
*/
5254

5355
// Initiate observe for catching files that have been removed and
5456
// removing the data from all stores as well
@@ -84,6 +86,7 @@ function getReadyQuery(storeName) {
8486
var selector = {uploadedAt: {$exists: true}};
8587
selector['copies.' + storeName] = null;
8688
selector['failures.copies.' + storeName + '.doneTrying'] = {$ne: true};
89+
selector['instance_id'] = process.env.COLLECTIONFS_ENV_NAME_UNIQUE_ID ? process.env[process.env.COLLECTIONFS_ENV_NAME_UNIQUE_ID] : process.env.METEOR_PARENT_PID;
8790
return selector;
8891
}
8992

@@ -141,7 +144,7 @@ function getDoneQuery(stores) {
141144
tempCond['failures.copies.' + storeName + '.doneTrying'] = true;
142145
copyCond.$or.push(tempCond);
143146
selector.$and.push(copyCond);
144-
})
147+
});
145148

146149
return selector;
147150
}
@@ -172,6 +175,11 @@ function saveCopy(fsFile, storeName, options) {
172175
var writeStream = storage.adapter.createWriteStream(fsFile);
173176
var readStream = FS.TempStore.createReadStream(fsFile);
174177

178+
writeStream.on('finish',Meteor.bindEnvironment(function(){
179+
FS.debug && console.log('finish', fsFile._id);
180+
FS.TempStore.removeFile(fsFile);
181+
}));
182+
175183
// Pipe the temp data into the storage adapter
176184
readStream.pipe(writeStream);
177185
}

0 commit comments

Comments
 (0)