Răsfoiți Sursa

use tempdirs

David Arnold 4 ani în urmă
părinte
comite
e99130d3ea
3 a modificat fișierele cu 20 adăugiri și 12 ștergeri
  1. 3 0
      models/attachments.js
  2. 3 0
      models/avatars.js
  3. 14 12
      server/migrations.js

+ 3 - 0
models/attachments.js

@@ -5,6 +5,8 @@ import { createOnAfterUpload } from './lib/fsHooks/createOnAfterUpload';
 import { createInterceptDownload } from './lib/fsHooks/createInterceptDownload';
 import { createOnAfterRemove } from './lib/fsHooks/createOnAfterRemove';
 
+const os = require('os');
+
 let attachmentBucket;
 if (Meteor.isServer) {
   attachmentBucket = createBucket('attachments');
@@ -31,6 +33,7 @@ const insertActivity = (fileObj, activityType) =>
 Attachments = new FilesCollection({
   debug: false, // Change to `true` for debugging
   collectionName: 'attachments',
+  storagePath: os.tmpdir(),
   allowClientCode: true,
   onAfterUpload: function onAfterUpload(fileRef) {
     createOnAfterUpload(attachmentBucket).call(this, fileRef);

+ 3 - 0
models/avatars.js

@@ -5,6 +5,8 @@ import { createOnAfterUpload } from './lib/fsHooks/createOnAfterUpload';
 import { createInterceptDownload } from './lib/fsHooks/createInterceptDownload';
 import { createOnAfterRemove } from './lib/fsHooks/createOnAfterRemove';
 
+const os = require('os');
+
 let avatarsBucket;
 if (Meteor.isServer) {
   avatarsBucket = createBucket('avatars');
@@ -13,6 +15,7 @@ if (Meteor.isServer) {
 Avatars = new FilesCollection({
   debug: false, // Change to `true` for debugging
   collectionName: 'avatars',
+  storagePath: os.tmpdir(),
   allowClientCode: true,
   onBeforeUpload(file) {
     if (file.size <= 72000 && file.type.startsWith('image/')) {

+ 14 - 12
server/migrations.js

@@ -22,9 +22,6 @@ import Swimlanes from '../models/swimlanes';
 import Triggers from '../models/triggers';
 import UnsavedEdits from '../models/unsavedEdits';
 import Users from '../models/users';
-
-const fs = require('fs');
-
 // Anytime you change the schema of one of the collection in a non-backward
 // compatible way you have to write a migration in this file using the following
 // API:
@@ -1127,14 +1124,17 @@ Migrations.add('add-card-details-show-lists', () => {
 });
 
 Migrations.add('migrate-attachments-collectionFS-to-ostrioFiles', () => {
+  const os = require('os');
+  const fs = require('fs');
+  const path = require('path');
+  tmdir = os.tmpdir();
+
   AttachmentsOld.find().forEach(function(fileObj) {
     //console.log('File: ', fileObj.userId);
 
     // This directory must be writable on server, so a test run first
-    // We are going to copy the files locally, then move them to S3
-    const fileName = `./assets/app/uploads/attachments/${
-      fileObj._id
-    }-${fileObj.name()}`;
+    // We are going to copy the files locally, then move them to mongo bucket
+    const fileName = path.join(tmpdir, `${fileObj._id}-${fileObj.name()}`);
     const newFileName = fileObj.name();
 
     // This is "example" variable, change it to the userId that you might be using.
@@ -1192,16 +1192,18 @@ Migrations.add('migrate-attachments-collectionFS-to-ostrioFiles', () => {
     readStream.pipe(writeStream);
   });
 });
-
 Migrations.add('migrate-avatars-collectionFS-to-ostrioFiles', () => {
+  const os = require('os');
+  const fs = require('fs');
+  const path = require('path');
+  tmdir = os.tmpdir();
+
   AvatarsOld.find().forEach(function(fileObj) {
     //console.log('File: ', fileObj.userId);
 
     // This directory must be writable on server, so a test run first
-    // We are going to copy the files locally, then move them to S3
-    const fileName = `./assets/app/uploads/avatars/${
-      fileObj._id
-    }-${fileObj.name()}`;
+    // We are going to copy the files locally, then move them to mongo bucket
+    const fileName = path.join(tmpdir, `${fileObj._id}-${fileObj.name()}`);
     const newFileName = fileObj.name();
 
     // This is "example" variable, change it to the userId that you might be using.