Slingshot Meteor in server/main.js
Slingshot.fileRestrictions("imageUpload", {
allowedFileTypes: ["image/png", "image/jpeg", "image/gif"],
maxSize: 2 * 1024 * 1024,
});
Slingshot.createDirective("imageUpload", Slingshot.S3Storage, {
AWSAccessKeyId: Meteor.settings.AWSAccessKeyId,
AWSSecretAccessKey: Meteor.settings.AWSSecretAccessKey,
bucket: "xxx-bucket",
acl: "public-read",
region: "ap-northeast-2",
authorize: function () {
if (!this.userId) {
var message = "Please login before posting images";
throw new Meteor.Error("Login Required", message);
}
return true;
},
key: function (file) {
//Store file into a directory by the user's username.
return "upload/" + file.name;
}
});