Skip to content

Commit 5d25c3e

Browse files
committed
feat: endpoint support
1 parent 22f3626 commit 5d25c3e

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,16 @@ The client specified MUST implement functions called `getObject` and `putObject`
144144

145145
*Default:* the default S3 library is `aws-sdk`
146146

147+
### endpoint
148+
149+
AWS (or AWS compatible endpoint) to use. E.g. with DigitalOcean Spaces, Microsoft Azure Blob Storage,
150+
or Openstack Swift
151+
152+
If `endpoint` set the `region` option will be ignored.
153+
154+
*Default:* `[region].s3.amazonaws.com`
155+
156+
147157
### serverSideEncryption
148158

149159
The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms). Possible values include:

lib/s3.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ module.exports = CoreObject.extend({
3030
var plugin = options.plugin;
3131
var config = plugin.pluginConfig;
3232
var profile = plugin.readConfig('profile');
33+
var endpoint = plugin.readConfig('endpoint');
3334

3435
this._plugin = plugin;
3536

@@ -38,6 +39,11 @@ module.exports = CoreObject.extend({
3839
AWS.config.credentials = new AWS.SharedIniFileCredentials({ profile: profile });
3940
}
4041

42+
if (endpoint) {
43+
this.plugin.log('Using endpoint from config', { verbose: true });
44+
AWS.config.endpoint = new AWS.Endpoint(endpoint);
45+
}
46+
4147
this._client = plugin.readConfig('s3Client') || new AWS.S3(config);
4248
},
4349

0 commit comments

Comments
 (0)