mirror of
https://github.com/plankanban/planka.git
synced 2025-07-19 05:09:43 +02:00
46 lines
859 B
JavaScript
46 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;
|
||
|
},
|
||
|
};
|