2020-09-09 11:17:21 +02:00

53 lines
1.2 KiB
JavaScript

'use strict';
const awsRequest = require('@serverless/test/aws-request');
function createBucket(bucket) {
return awsRequest('S3', 'createBucket', { Bucket: bucket });
}
function createAndRemoveInBucket(bucket, opts = {}) {
const prefix = opts.prefix || '';
const suffix = opts.suffix || '';
const fileName = opts.fileName || 'object';
const params = {
Bucket: bucket,
Key: `${prefix}${fileName}${suffix}`,
Body: 'hello world',
};
return awsRequest('S3', 'putObject', params).then(() => {
delete params.Body;
return awsRequest('S3', 'deleteObject', params);
});
}
function emptyBucket(bucket) {
return awsRequest('S3', 'listObjects', { Bucket: bucket }).then(data => {
const items = data.Contents;
const numItems = items.length;
if (numItems) {
const keys = items.map(item => Object.assign({}, { Key: item.Key }));
return awsRequest('S3', 'deleteObjects', {
Bucket: bucket,
Delete: {
Objects: keys,
},
});
}
return null;
});
}
function deleteBucket(bucket) {
return emptyBucket(bucket).then(() => awsRequest('S3', 'deleteBucket', { Bucket: bucket }));
}
module.exports = {
createBucket,
createAndRemoveInBucket,
emptyBucket,
deleteBucket,
};