mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 20:59:44 +02:00
45 lines
859 B
JavaScript
45 lines
859 B
JavaScript
const AWS = require('aws-sdk');
|
|
|
|
class S3Client {
|
|
constructor(options) {
|
|
AWS.config.update({
|
|
accessKeyId: options.accessKeyId,
|
|
secretAccessKey: options.secretAccessKey,
|
|
region: options.region,
|
|
});
|
|
this.bucket = options.bucket;
|
|
this.client = new AWS.S3({
|
|
endpoint: options.endpoint,
|
|
});
|
|
}
|
|
|
|
upload({ Key, Body, ContentType }) {
|
|
return this.client
|
|
.upload({
|
|
Bucket: this.bucket,
|
|
Key,
|
|
Body,
|
|
ContentType,
|
|
ACL: 'public-read',
|
|
})
|
|
.promise();
|
|
}
|
|
|
|
delete({ Key }) {
|
|
return this.client
|
|
.deleteObject({
|
|
Bucket: this.bucket,
|
|
Key,
|
|
})
|
|
.promise();
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
fn() {
|
|
if (sails.config.custom.attachmentsS3) {
|
|
return new S3Client(sails.config.custom.attachmentsS3);
|
|
}
|
|
return null;
|
|
},
|
|
};
|