101 lines
2.5 KiB
JavaScript
101 lines
2.5 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
function _builderUtil() {
|
|
const data = require("builder-util");
|
|
|
|
_builderUtil = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _BaseS3Publisher() {
|
|
const data = require("./BaseS3Publisher");
|
|
|
|
_BaseS3Publisher = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
class S3Publisher extends _BaseS3Publisher().BaseS3Publisher {
|
|
constructor(context, info) {
|
|
super(context, info);
|
|
this.info = info;
|
|
this.providerName = "S3";
|
|
}
|
|
|
|
static async checkAndResolveOptions(options, channelFromAppVersion, errorIfCannot) {
|
|
const bucket = options.bucket;
|
|
|
|
if (bucket == null) {
|
|
throw new (_builderUtil().InvalidConfigurationError)(`Please specify "bucket" for "s3" publish provider`);
|
|
}
|
|
|
|
if (options.endpoint == null && bucket.includes(".") && options.region == null) {
|
|
// on dotted bucket names, we need to use a path-based endpoint URL. Path-based endpoint URLs need to include the region.
|
|
try {
|
|
options.region = await (0, _builderUtil().executeAppBuilder)(["get-bucket-location", "--bucket", bucket]);
|
|
} catch (e) {
|
|
if (errorIfCannot) {
|
|
throw e;
|
|
} else {
|
|
_builderUtil().log.warn(`cannot compute region for bucket (required because on dotted bucket names, we need to use a path-based endpoint URL): ${e}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (options.channel == null && channelFromAppVersion != null) {
|
|
options.channel = channelFromAppVersion;
|
|
}
|
|
|
|
if (options.endpoint != null && options.endpoint.endsWith("/")) {
|
|
options.endpoint = options.endpoint.slice(0, -1);
|
|
}
|
|
}
|
|
|
|
getBucketName() {
|
|
return this.info.bucket;
|
|
}
|
|
|
|
configureS3Options(args) {
|
|
super.configureS3Options(args);
|
|
|
|
if (this.info.endpoint != null) {
|
|
args.push("--endpoint", this.info.endpoint);
|
|
}
|
|
|
|
if (this.info.region != null) {
|
|
args.push("--region", this.info.region);
|
|
}
|
|
|
|
if (this.info.storageClass != null) {
|
|
args.push("--storageClass", this.info.storageClass);
|
|
}
|
|
|
|
if (this.info.encryption != null) {
|
|
args.push("--encryption", this.info.encryption);
|
|
}
|
|
}
|
|
|
|
toString() {
|
|
const result = super.toString();
|
|
const endpoint = this.info.endpoint;
|
|
|
|
if (endpoint != null) {
|
|
return result.substring(0, result.length - 1) + `, endpoint: ${endpoint})`;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
} exports.default = S3Publisher;
|
|
// __ts-babel@6.0.4
|
|
//# sourceMappingURL=s3Publisher.js.map
|