38 lines
1.2 KiB
JavaScript
Executable file
38 lines
1.2 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
const { S3Client, PutObjectCommand } = require('@aws-sdk/client-s3')
|
|
const { fromIni } = require('@aws-sdk/credential-provider-ini')
|
|
const path = require('path')
|
|
const fs = require('fs')
|
|
const crypto = require('crypto')
|
|
|
|
function getMD5HashFromFile(data) {
|
|
const hash = crypto.createHash('md5').update(data).digest('base64')
|
|
return hash
|
|
}
|
|
|
|
(async function () {
|
|
const s3Client = new S3Client({
|
|
region: 'us-east-2',
|
|
credentials: fromIni({ profile: 'gl-logs-for-panther' }),
|
|
})
|
|
try {
|
|
const file = 'gl-dependency-scanning-report.json'
|
|
const data = fs.readFileSync(file)
|
|
const responseData = await s3Client.send(
|
|
new PutObjectCommand({
|
|
Bucket: 'gl-logs-for-panther-test',
|
|
Key: path.join('package_hunter_test', path.basename(file)),
|
|
Body: data,
|
|
ContentMD5: getMD5HashFromFile(data),
|
|
}),
|
|
)
|
|
console.log('Successfully uploaded %s', file)
|
|
} catch (err) {
|
|
if (err.name === 'CredentialsProviderError' || err.name === 'AuthorizationHeaderMalformed')
|
|
console.log('Could not upload the report. Are AWS credentials configured in ~/.aws/credentials?')
|
|
else
|
|
console.log('Unexpected error during upload: ', err.message)
|
|
process.exit(1)
|
|
}
|
|
})()
|