picgo-plugin-oss
Version:
picgo beecloud oss uploader
54 lines (53 loc) • 1.72 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const aws_sdk_1 = __importDefault(require("aws-sdk"));
const https_1 = __importDefault(require("https"));
const utils_1 = require("./utils");
function createS3Client(accessKeyID, secretAccessKey, region, endpoint, pathStyleAccess, rejectUnauthorized) {
const s3 = new aws_sdk_1.default.S3({
region,
endpoint,
accessKeyId: accessKeyID,
secretAccessKey: secretAccessKey,
s3ForcePathStyle: pathStyleAccess,
httpOptions: {
agent: new https_1.default.Agent({
rejectUnauthorized: rejectUnauthorized,
})
}
});
return s3;
}
function createUploadTask(s3, bucketName, path, item, index, acl) {
return new Promise(async (resolve, reject) => {
if (!item.buffer && !item.base64Image) {
reject(new Error('undefined image'));
}
const { body, contentType, contentEncoding } = await utils_1.extractInfo(item);
const opts = {
Key: path,
Bucket: bucketName,
ACL: acl,
Body: body,
ContentType: contentType,
ContentEncoding: contentEncoding,
};
s3.upload(opts)
.promise()
.then((result) => {
resolve({
url: result.Location,
imgURL: result.Key,
index
});
})
.catch((err) => reject(err));
});
}
exports.default = {
createS3Client,
createUploadTask
};