Migrate AWS SDK for JavaScript v2 APIs to v3
This was cherry-picked from https://github.com/handlebars-lang/handlebars.js/pull/2020.
This commit is contained in:
committed by
Jay Linski
parent
71350d90ec
commit
d025292e06
Generated
+4444
-705
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -64,6 +64,7 @@
|
||||
"yargs": "^16.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@aws-sdk/client-s3": "^3.1011.0",
|
||||
"@playwright/test": "^1.58.2",
|
||||
"@rspack/cli": "^1.7.8",
|
||||
"@rspack/core": "^1.7.8",
|
||||
@@ -72,7 +73,6 @@
|
||||
"@vitest/browser": "^4.0.18",
|
||||
"@vitest/browser-playwright": "^4.0.18",
|
||||
"@vitest/coverage-v8": "^4.0.18",
|
||||
"aws-sdk": "^2.1.49",
|
||||
"concurrently": "^5.0.0",
|
||||
"eslint": "^10.0.3",
|
||||
"eslint-plugin-compat": "^7.0.1",
|
||||
|
||||
+21
-19
@@ -1,9 +1,11 @@
|
||||
/* eslint-disable no-console */
|
||||
const fs = require('fs');
|
||||
const AWS = require('aws-sdk');
|
||||
const { S3, PutObjectCommand } = require('@aws-sdk/client-s3');
|
||||
const git = require('./util/git');
|
||||
const semver = require('semver');
|
||||
|
||||
let s3Client;
|
||||
|
||||
async function main() {
|
||||
console.log('remotes: ' + (await git.remotes()));
|
||||
console.log('branches: ' + (await git.branches()));
|
||||
@@ -25,13 +27,13 @@ async function main() {
|
||||
}
|
||||
|
||||
if (suffixes.length > 0) {
|
||||
initSDK();
|
||||
validateS3Env();
|
||||
console.log('publishing file-suffixes: ' + JSON.stringify(suffixes));
|
||||
await publish(suffixes);
|
||||
}
|
||||
}
|
||||
|
||||
function initSDK() {
|
||||
function validateS3Env() {
|
||||
const bucket = process.env.S3_BUCKET_NAME,
|
||||
key = process.env.S3_ACCESS_KEY_ID,
|
||||
secret = process.env.S3_SECRET_ACCESS_KEY;
|
||||
@@ -39,8 +41,6 @@ function initSDK() {
|
||||
if (!bucket || !key || !secret) {
|
||||
throw new Error('Missing S3 config values');
|
||||
}
|
||||
|
||||
AWS.config.update({ accessKeyId: key, secretAccessKey: secret });
|
||||
}
|
||||
|
||||
async function publish(suffixes) {
|
||||
@@ -65,25 +65,27 @@ async function publishSuffix(suffix) {
|
||||
}
|
||||
|
||||
async function uploadToBucket(localFile, nameInBucket) {
|
||||
const bucket = process.env.S3_BUCKET_NAME;
|
||||
const uploadParams = {
|
||||
Bucket: bucket,
|
||||
const s3 = getS3Client();
|
||||
|
||||
return s3.send(
|
||||
new PutObjectCommand({
|
||||
Bucket: process.env.S3_BUCKET_NAME,
|
||||
Key: nameInBucket,
|
||||
Body: fs.readFileSync(localFile, 'utf8'),
|
||||
};
|
||||
return s3PutObject(uploadParams);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function s3PutObject(uploadParams) {
|
||||
const s3 = new AWS.S3();
|
||||
return new Promise((resolve, reject) => {
|
||||
s3.putObject(uploadParams, (err) => {
|
||||
if (err != null) {
|
||||
return reject(err);
|
||||
function getS3Client() {
|
||||
if (!s3Client) {
|
||||
s3Client = new S3({
|
||||
credentials: {
|
||||
accessKeyId: process.env.S3_ACCESS_KEY_ID,
|
||||
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
|
||||
},
|
||||
});
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
return s3Client;
|
||||
}
|
||||
|
||||
function getNameInBucket(filename, suffix) {
|
||||
|
||||
Reference in New Issue
Block a user