Fix migrated attachment not readable bug

Remove reduandant files
This commit is contained in:
Romulus Urakagi Tsai 2020-05-20 15:11:22 +08:00
parent 09ce3e464f
commit 4064f3f406
5 changed files with 43 additions and 26 deletions

View file

@ -50,7 +50,10 @@ Template.attachmentsGalery.helpers({
return Attachments.link(this, 'original', '/');
},
isUploaded() {
return !!this.meta.uploaded;
return !this.meta.uploading;
},
isImage() {
return !!this.isImage;
},
});

View file

@ -70,7 +70,9 @@ Utils = {
streams: 'dynamic',
chunkSize: 'dynamic',
};
settings.meta = {};
settings.meta = {
uploading: true
};
if (card.isLinkedCard()) {
settings.meta.boardId = Cards.findOne(card.linkedId).boardId;
settings.meta.cardId = card.linkedId;

View file

@ -6,7 +6,7 @@ const collectionName = 'attachments2';
Attachments = new FilesCollection({
storagePath: storagePath(),
debug: false,
allowClientCode: true,
// allowClientCode: true,
collectionName: 'attachments2',
onAfterUpload: onAttachmentUploaded,
onBeforeRemove: onAttachmentRemoving
@ -18,7 +18,17 @@ if (Meteor.isServer) {
});
// TODO: Permission related
// TODO: Add Activity update
Attachments.allow({
insert() {
return false;
},
update() {
return true;
},
remove() {
return true;
}
});
Meteor.methods({
cloneAttachment(file, overrides) {
@ -63,7 +73,7 @@ function storagePath(defaultPath) {
}
function onAttachmentUploaded(fileRef) {
Attachments.update({_id:fileRef._id}, {$set: {"meta.uploaded": true}});
Attachments.update({_id:fileRef._id}, {$set: {"meta.uploading": false}});
if (!fileRef.meta.source || fileRef.meta.source !== 'import') {
// Add activity about adding the attachment
Activities.insert({

View file

@ -80,7 +80,7 @@ Migrations.add('lowercase-board-permission', () => {
Migrations.add('change-attachments-type-for-non-images', () => {
const newTypeForNonImage = 'application/octet-stream';
Attachments.find().forEach(file => {
if (!file.isImage()) {
if (!file.isImage) {
Attachments.update(
file._id,
{
@ -1058,27 +1058,29 @@ Migrations.add('change-attachment-library', () => {
const path = `${store}/${file.name()}`;
const fd = fs.createWriteStream(path);
reader.pipe(fd);
let opts = {
fileName: file.name(),
type: file.type(),
size: file.size(),
fileId: file._id,
meta: {
userId: file.userId,
boardId: file.boardId,
cardId: file.cardId
}
};
if (file.listId) {
opts.meta.listId = file.listId;
}
if (file.swimlaneId) {
opts.meta.swimlaneId = file.swimlaneId;
}
Attachments.addFile(path, opts, (err, fileRef) => {
if (err) {
console.log('error when migrating ', fileRef.name, err);
reader.on('end', () => {
let opts = {
fileName: file.name(),
type: file.type(),
size: file.size(),
fileId: file._id,
meta: {
userId: file.userId,
boardId: file.boardId,
cardId: file.cardId
}
};
if (file.listId) {
opts.meta.listId = file.listId;
}
if (file.swimlaneId) {
opts.meta.swimlaneId = file.swimlaneId;
}
Attachments.addFile(path, opts, (err, fileRef) => {
if (err) {
console.log('error when migrating', file.name(), err);
}
});
});
});
});