UNPKG

picgo-plugin-oss

Version:

picgo beecloud oss uploader

54 lines (53 loc) 1.72 kB
"use strict"; 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 };