@trap_stevo/legendarybuilderproreact-ui
Version:
The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton
115 lines • 3.81 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import AWS from "aws-sdk";
var HUDWasabiServiceManager = /*#__PURE__*/function () {
function HUDWasabiServiceManager(accessKeyId, secretAccessKey) {
var region = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "us-east-1";
var url = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "s3.us-east-1.wasabisys.com";
_classCallCheck(this, HUDWasabiServiceManager);
AWS.config.update({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey,
region: region,
endpoint: new AWS.Endpoint(url),
s3ForcePathStyle: true
});
this.s3 = new AWS.S3();
return;
}
_createClass(HUDWasabiServiceManager, [{
key: "getFileMetadata",
value: function () {
var _getFileMetadata = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(bucketName, fileName) {
var params, metadata;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
params = {
Bucket: bucketName,
Key: fileName
};
_context.next = 3;
return this.s3.headObject(params).promise();
case 3:
metadata = _context.sent;
return _context.abrupt("return", metadata);
case 5:
case "end":
return _context.stop();
}
}, _callee, this);
}));
function getFileMetadata(_x, _x2) {
return _getFileMetadata.apply(this, arguments);
}
return getFileMetadata;
}()
}, {
key: "getSignedUrl",
value: function getSignedUrl(bucketName, fileName) {
var expiresIn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
var params = {
Bucket: bucketName,
Expires: expiresIn,
Key: fileName
};
return this.s3.getSignedUrlPromise("getObject", params);
}
}, {
key: "uploadFiles",
value: function uploadFiles(filesParams) {
var _this = this;
return Promise.all(filesParams.map(function (fileParam) {
return _this.uploadFile(fileParam);
}));
}
}, {
key: "uploadFile",
value: function uploadFile(fileParams) {
return this.s3.upload(fileParams).promise();
}
}, {
key: "downloadFile",
value: function downloadFile(bucketName, fileName) {
var params = {
Bucket: bucketName,
Key: fileName
};
return this.s3.getObject(params).promise();
}
}, {
key: "downloadFiles",
value: function downloadFiles(bucketName, fileNames) {
var _this2 = this;
return Promise.all(fileNames.map(function (fileName) {
return _this2.downloadFile(bucketName, fileName);
}));
}
}, {
key: "deleteFiles",
value: function deleteFiles(bucketName, fileNames) {
var _this3 = this;
return Promise.all(fileNames.map(function (fileName) {
return _this3.deleteFile(bucketName, fileName);
}));
}
}, {
key: "deleteFile",
value: function deleteFile(bucketName, fileName) {
var params = {
Bucket: bucketName,
Key: fileName
};
return this.s3.deleteObject(params).promise();
}
}, {
key: "listFiles",
value: function listFiles(bucketParams) {
return this.s3.listObjectsV2(bucketParams).promise();
}
}]);
return HUDWasabiServiceManager;
}();
export default HUDWasabiServiceManager;