Skip to content
This repository was archived by the owner on Jun 20, 2025. It is now read-only.

Commit 3490020

Browse files
authored
update aws package (#4)
* update aws package * add link with available AWS regions to readme && fixes * update package.json to version 0.4.0
1 parent cf33c3d commit 3490020

File tree

5 files changed

+807
-109
lines changed

5 files changed

+807
-109
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ $ ucdn upload -c /path/to/config/file.yaml -C production
2626

2727
All following options except `config` and `config-key` can be configured using the config file.
2828

29+
Available AWS regions can be viewed at https://docs.aws.amazon.com/sns/latest/dg/sns-supported-regions-countries.html.
30+
2931
```
3032
--config, -c path to config file [default: "./ucdn.yml"]
3133
--config-key, -C root config key [default: null]
34+
--region, -r AWS geographical area [default: "eu-west-1"]
3235
--dir, -d assets directory [default: "dist/"]
3336
--bucket, -b AWS bucket for upload [required]
3437
--exclude, -e excluded extenstions [default: ["html","gz"]]

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@umbrellio/ucdn",
3-
"version": "0.3.1",
3+
"version": "0.4.0",
44
"bin": "ucdn",
55
"main": "index.js",
66
"repository": "git@github.com:umbrellio/ucdn.git",
@@ -11,7 +11,7 @@
1111
"lint": "eslint . ucdn"
1212
},
1313
"dependencies": {
14-
"aws-sdk": "2.701.0",
14+
"@aws-sdk/client-s3": "^3.19.0",
1515
"js-yaml": "^3.14.0",
1616
"mime-types": "^2.1.27",
1717
"yargs": "^15.3.1"

ucdn

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ const yargsOptions = {
1515
default: "./ucdn.yml",
1616
type: "string",
1717
},
18+
region: {
19+
alias: "r",
20+
describe: "AWS geographical area",
21+
default: "eu-west-1",
22+
type: "string",
23+
},
1824
dir: {
1925
alias: "d",
2026
describe: "assets directory",

upload.js

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
const fs = require("fs")
22
const path = require("path")
33
const mime = require("mime-types")
4-
const AWS = require("aws-sdk")
4+
const { S3Client, PutObjectCommand } = require("@aws-sdk/client-s3");
55

6-
const s3 = new AWS.S3()
76
const configDefaults = {
7+
region: null,
88
dir: null,
99
bucket: null,
1010
exclude: [],
@@ -29,7 +29,7 @@ const findFiles = directory => {
2929

3030
const getKey = (file, root) => path.relative(root, file)
3131

32-
const uploadFile = (config, file, key) => new Promise((resolve, reject) => {
32+
const uploadFile = (s3, config, file, key) => new Promise((resolve, reject) => {
3333
const { bucket } = config
3434
const stream = fs.createReadStream(file)
3535
const basename = path.basename(file)
@@ -41,20 +41,22 @@ const uploadFile = (config, file, key) => new Promise((resolve, reject) => {
4141
}
4242

4343
stream.on("error", reject)
44-
s3.upload(params, (err, data) => {
45-
stream.close()
46-
if (err) reject(err)
47-
else resolve(data)
48-
})
44+
s3.send(new PutObjectCommand(params))
45+
.then(data => resolve(data))
46+
.catch(err => reject(err))
47+
.finally(() => stream.close())
4948
})
5049

5150
const upload = argv => {
5251
const config = getConfig(argv)
53-
const { accessKeyId, secretAccessKey, dir, exclude } = config
52+
const { region, accessKeyId, secretAccessKey, dir, exclude } = config
5453

55-
AWS.config.update({
56-
accessKeyId: accessKeyId || "unknown",
57-
secretAccessKey: secretAccessKey || "unknown",
54+
const s3 = new S3Client({
55+
region,
56+
credentials: {
57+
accessKeyId: accessKeyId || "unknown",
58+
secretAccessKey: secretAccessKey || "unknown",
59+
}
5860
})
5961

6062
const directory = path.resolve(dir)
@@ -65,8 +67,8 @@ const upload = argv => {
6567

6668
const promises = files.map(file => {
6769
const key = getKey(file, directory)
68-
return uploadFile(config, file, key)
69-
.then(data => console.log("Uploaded", data.Location))
70+
return uploadFile(s3, config, file, key)
71+
.then(() => console.log("Uploaded", file))
7072
})
7173

7274
return Promise.all(promises)

0 commit comments

Comments
 (0)