Oops forgot this:
var s3 = new FS.Store.S3('docs-s3', {
bucket: process.env.CFS_S3_BUCKET, //required
region: 'ap-northeast-1', //optional in most cases
// accessKeyId: 'account or IAM key', //required if environment variables are not set
// secretAccessKey: 'account or IAM secret', //required if environment variables are not set
// ACL: 'myValue', //optional, default is 'private', but you can allow public or secure access routed through your app URL
// folder: 'folder/in/bucket', //optional, which folder (key prefix) in the bucket to use
// transformWrite: encFile,
// transformRead: decFile,
});
Docs = new FS.Collection('docs', {
stores: [new FS.Store.S3('docs-s3')],
filter: {
maxSize: 12 * MB,
allow: {
contentTypes: ['image/*'],
extensions: ['png', 'jpg', 'jpeg']
},
onInvalid: function (message) {
console.log('file upload error: ', message);
// message is not i18n-alized, so we have to hack it a bit
var errorMap = {
filetype: 'not allowed',
filesize: 'too big',
};
_.forOwn(errorMap, function (msg_stub, err_type) {
if (message.substring(message.length-msg_stub.length) === msg_stub) {
var localized_msg = i18n('enroll.documentUpload.wrong_' + err_type);
bootbox.alert(localized_msg);
return false;
}
});
},
},
});
Docs = new FS.Collection('docs', {
stores: [s3],
filter: {
maxSize: 12 * MB,
allow: {
contentTypes: ['image/*'],
extensions: ['png', 'jpg', 'jpeg']
},
onInvalid: function (message) {
console.log('message: ', message);
throw new Meteor.Error(406, '[Error] Upload File: ' + message);
},
},
});