2015-01-05 2 views
1

저는 Meteor 및 CollectionFS를 사용하여 사용자가 이미지를 저장할 수 있도록하고 있습니다. 나는 모든 사용자가 정확히 하나의 이미지를 저장할 수 있고, 두 번째 이미지를 업로드하는 경우 첫 번째 이미지를 덮어 써야합니다.유성 컬렉션이있는 사용자 당 단 하나의 이미지 CFS

"change #imageInput": FS.EventHandlers.insertFiles(Images, { 
    metadata: function (fileObj) { 
     return { 
      owner: Meteor.userId() 
     }; 
    }, 
    after: function (error, fileObj) { 
    } 
}); 

서버 측 :

Images = new FS.Collection("images", { 
    stores: [ 
     new FS.Store.FileSystem("thumbs", { 
      transformWrite: function(fileObj, readStream, writeStream) { 
       // Transform the image into a 10x10px thumbnail 
       gm(readStream, fileObj.name()).resize('125', '125').stream().pipe(writeStream); 
      } 
     }) 
    ], 
}); 

Images.allow({ 
    insert: function (userId, file) { 
     return userId && file.owner === userId; 
    }, 
    update: function (userId, file, fields, modifier) { 
     return userId && file.owner === userId; 
    }, 
    remove: function (userId, file) { 
     return userId && file.owner === userId; 
    }, 
    download: function(userId, file) { 
     return true; 
    } 
}) 

새로운 이미지가 {소유자와 모든 이미지를 업로드됩니다 : Meteor.userId

는 클라이언트 측에 나는 파일을 업로드 도우미 기능을 사용()}을 삭제해야합니다. 제 질문은 이걸 넣을 곳이 어디죠? 서버 측에서 afterWrite와 같은 후크를 삽입하는 방법을 찾지 못했습니다.

+0

난 정말이 API를 사용하지 않는하지만 난 오류가 모든 사용자 이미지를 찾을 수없고 모두 제거가 존재하는 경우는, 이벤트 이후에해야한다고 생각하지만,이 사람은 이미 삽입 : 이 당신을 도움이 될 것입니다 – Sindis

답변

관련 문제