feat(medusa-file-s3): Allow all AWS options in config (#2809)
This commit is contained in:
5
.changeset/lemon-owls-live.md
Normal file
5
.changeset/lemon-owls-live.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"medusa-file-s3": patch
|
||||
---
|
||||
|
||||
Add options for s3 configuration for increased flexibility in configuration
|
||||
@@ -124,6 +124,33 @@ const plugins = [
|
||||
];
|
||||
```
|
||||
|
||||
### Add AWS Configurations
|
||||
|
||||
You can pass AWS configurations in the plugin's options under the property `aws_config_object`. This property is an object that accepts [AWS Configurations](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html) as its properties.
|
||||
|
||||
For example, you can pass the `region`, `access_key_id` and `secret_access_key` in `aws_config_object`:
|
||||
|
||||
```jsx title=medusa-config.js
|
||||
const plugins = [
|
||||
//...
|
||||
{
|
||||
resolve: `medusa-file-s3`,
|
||||
options: {
|
||||
s3_url: process.env.S3_URL,
|
||||
bucket: process.env.S3_BUCKET,
|
||||
aws_config_object: {
|
||||
region: process.env.S3_REGION,
|
||||
access_key_id: process.env.S3_ACCESS_KEY_ID,
|
||||
secret_access_key: process.env.S3_SECRET_ACCESS_KEY,
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
```
|
||||
|
||||
Make sure to define `S3_REGION`, `S3_ACCESS_KEY_ID`, and `S3_SECRET_ACCESS_KEY` in your environment variables first.
|
||||
|
||||
|
||||
:::caution
|
||||
|
||||
If you have multiple storage plugins configured, the last plugin declared in the `medusa-config.js` file will be used.
|
||||
|
||||
@@ -13,5 +13,8 @@ Learn more about how you can use this plugin in the [documentaion](https://docs.
|
||||
region: "eu-west-1"
|
||||
access_key_id: "YOUR-ACCESS-KEY",
|
||||
secret_access_key: "YOUR-SECRET-KEY",
|
||||
aws_config_object : {
|
||||
// object for aws config properties
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -14,6 +14,7 @@ class S3Service extends AbstractFileService {
|
||||
this.secretAccessKey_ = options.secret_access_key
|
||||
this.region_ = options.region
|
||||
this.endpoint_ = options.endpoint
|
||||
this.awsConfigObject_ = options.aws_config_object
|
||||
}
|
||||
|
||||
upload(file) {
|
||||
@@ -122,16 +123,17 @@ class S3Service extends AbstractFileService {
|
||||
|
||||
updateAwsConfig(additionalConfiguration = {}) {
|
||||
aws.config.setPromisesDependency(null)
|
||||
aws.config.update(
|
||||
{
|
||||
accessKeyId: this.accessKeyId_,
|
||||
secretAccessKey: this.secretAccessKey_,
|
||||
region: this.region_,
|
||||
endpoint: this.endpoint_,
|
||||
...additionalConfiguration,
|
||||
},
|
||||
true
|
||||
)
|
||||
|
||||
const config = {
|
||||
...additionalConfiguration,
|
||||
accessKeyId: this.accessKeyId_,
|
||||
secretAccessKey: this.secretAccessKey_,
|
||||
region: this.region_,
|
||||
endpoint: this.endpoint_,
|
||||
...this.awsConfigObject_,
|
||||
}
|
||||
|
||||
aws.config.update(config, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user