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"
|
"yargs": "^16.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@aws-sdk/client-s3": "^3.1011.0",
|
||||||
"@playwright/test": "^1.58.2",
|
"@playwright/test": "^1.58.2",
|
||||||
"@rspack/cli": "^1.7.8",
|
"@rspack/cli": "^1.7.8",
|
||||||
"@rspack/core": "^1.7.8",
|
"@rspack/core": "^1.7.8",
|
||||||
@@ -72,7 +73,6 @@
|
|||||||
"@vitest/browser": "^4.0.18",
|
"@vitest/browser": "^4.0.18",
|
||||||
"@vitest/browser-playwright": "^4.0.18",
|
"@vitest/browser-playwright": "^4.0.18",
|
||||||
"@vitest/coverage-v8": "^4.0.18",
|
"@vitest/coverage-v8": "^4.0.18",
|
||||||
"aws-sdk": "^2.1.49",
|
|
||||||
"concurrently": "^5.0.0",
|
"concurrently": "^5.0.0",
|
||||||
"eslint": "^10.0.3",
|
"eslint": "^10.0.3",
|
||||||
"eslint-plugin-compat": "^7.0.1",
|
"eslint-plugin-compat": "^7.0.1",
|
||||||
|
|||||||
+23
-21
@@ -1,9 +1,11 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const AWS = require('aws-sdk');
|
const { S3, PutObjectCommand } = require('@aws-sdk/client-s3');
|
||||||
const git = require('./util/git');
|
const git = require('./util/git');
|
||||||
const semver = require('semver');
|
const semver = require('semver');
|
||||||
|
|
||||||
|
let s3Client;
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
console.log('remotes: ' + (await git.remotes()));
|
console.log('remotes: ' + (await git.remotes()));
|
||||||
console.log('branches: ' + (await git.branches()));
|
console.log('branches: ' + (await git.branches()));
|
||||||
@@ -25,13 +27,13 @@ async function main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (suffixes.length > 0) {
|
if (suffixes.length > 0) {
|
||||||
initSDK();
|
validateS3Env();
|
||||||
console.log('publishing file-suffixes: ' + JSON.stringify(suffixes));
|
console.log('publishing file-suffixes: ' + JSON.stringify(suffixes));
|
||||||
await publish(suffixes);
|
await publish(suffixes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function initSDK() {
|
function validateS3Env() {
|
||||||
const bucket = process.env.S3_BUCKET_NAME,
|
const bucket = process.env.S3_BUCKET_NAME,
|
||||||
key = process.env.S3_ACCESS_KEY_ID,
|
key = process.env.S3_ACCESS_KEY_ID,
|
||||||
secret = process.env.S3_SECRET_ACCESS_KEY;
|
secret = process.env.S3_SECRET_ACCESS_KEY;
|
||||||
@@ -39,8 +41,6 @@ function initSDK() {
|
|||||||
if (!bucket || !key || !secret) {
|
if (!bucket || !key || !secret) {
|
||||||
throw new Error('Missing S3 config values');
|
throw new Error('Missing S3 config values');
|
||||||
}
|
}
|
||||||
|
|
||||||
AWS.config.update({ accessKeyId: key, secretAccessKey: secret });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function publish(suffixes) {
|
async function publish(suffixes) {
|
||||||
@@ -65,25 +65,27 @@ async function publishSuffix(suffix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function uploadToBucket(localFile, nameInBucket) {
|
async function uploadToBucket(localFile, nameInBucket) {
|
||||||
const bucket = process.env.S3_BUCKET_NAME;
|
const s3 = getS3Client();
|
||||||
const uploadParams = {
|
|
||||||
Bucket: bucket,
|
return s3.send(
|
||||||
Key: nameInBucket,
|
new PutObjectCommand({
|
||||||
Body: fs.readFileSync(localFile, 'utf8'),
|
Bucket: process.env.S3_BUCKET_NAME,
|
||||||
};
|
Key: nameInBucket,
|
||||||
return s3PutObject(uploadParams);
|
Body: fs.readFileSync(localFile, 'utf8'),
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function s3PutObject(uploadParams) {
|
function getS3Client() {
|
||||||
const s3 = new AWS.S3();
|
if (!s3Client) {
|
||||||
return new Promise((resolve, reject) => {
|
s3Client = new S3({
|
||||||
s3.putObject(uploadParams, (err) => {
|
credentials: {
|
||||||
if (err != null) {
|
accessKeyId: process.env.S3_ACCESS_KEY_ID,
|
||||||
return reject(err);
|
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
|
||||||
}
|
},
|
||||||
resolve();
|
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
return s3Client;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getNameInBucket(filename, suffix) {
|
function getNameInBucket(filename, suffix) {
|
||||||
|
|||||||
Reference in New Issue
Block a user