"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.uploadAWS = void 0; const AWS = __importStar(require("aws-sdk")); const fs_1 = require("fs"); const path_1 = require("path"); const accessKeyId = 'AKIA5SV6RVTGROR7SLUJ'; const secretAccessKey = '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'; const region = 'us-east-1'; const Bucket = 'staging-legolas-blacklagoon-statics'; var s3; async function uploadAWS(version, dest) { AWS.config.update({ accessKeyId: accessKeyId, secretAccessKey: secretAccessKey, region: region }); s3 = new AWS.S3(); let res = await checkVestigital(version); //说明有这个版本的资源 考虑cnd原因不覆盖上传 if ((res.Contents || []).length > 0) { return console.warn('储存桶已有该版本资源 上传终止'); } let objs = [ { dir: dest, prefix: version } ]; while (objs.length > 0) { const obj = objs.shift(); const files = (0, fs_1.readdirSync)(obj.dir); for (const file of files) { const path = (0, path_1.join)(obj.dir, file); const prefix = obj.prefix + '/' + file; if ((0, fs_1.statSync)(path).isFile()) { try { await s3.upload({ Bucket: Bucket, Key: prefix, Body: (0, fs_1.readFileSync)(path) }).promise(); console.log(`File uploaded successfully: ${path}`); } catch (err) { console.error(`Error uploading file: ${path}`, err); } } else { objs.push({ dir: path, prefix: prefix }); } } } } exports.uploadAWS = uploadAWS; async function checkVestigital(prefix) { return await s3.listObjectsV2({ Bucket: Bucket, Prefix: `${prefix}/` }).promise(); } async function deleteObjects(prefix) { }