Aliyun OSS provider for Strapi
A provider for strapi server to upload file to Aliyun OSS.
$ npm install strapi-provider-upload-oss --save
or
$ yarn add strapi-provider-upload-oss --save
For more details, please see: https://strapi.io/documentation/developer-docs/latest/development/plugins/upload.html#using-a-provider
The lastest version of the provider supports v4 by default, configuration is updated a little bit. See example below for ./config/plugins.js
:
1module.exports = ({ env }) => ({
2 upload: {
3 config: {
4 provider: 'strapi-provider-upload-oss', // full package name is required
5 providerOptions: {
6 accessKeyId: env('ACCESS_KEY_ID'), // required
7 accessKeySecret: env('ACCESS_KEY_SECRET'), // required
8 region: env('REGION'), // required
9 bucket: env('BUCKET'), // required
10 uploadPath: env('UPLOAD_PATH'),
11 baseUrl: env('BASE_URL'),
12 timeout: env('TIMEOUT'),
13 secure: env('OSS_SECURE'),
14 internal: env.bool('OSS_INTERNAL', false),
15 bucketParams: {
16 ACL: 'private', // default is 'public-read'
17 signedUrlExpires: 60 * 60 // default is 30 * 60 (30min)
18 }
19 }
20 }
21 }
22});
Official documentation here
With a stable release of Strapi 3.0.0, the configuration was moved to a JavaScript file. Official documentation here.
To enable the provider, create or edit the file at ./config/plugins.js
.
1module.exports = ({ env }) => ({
2 upload: {
3 provider: 'oss',
4 providerOptions: {
5 accessKeyId: env('ACCESS_KEY_ID'),
6 accessKeySecret: env('ACCESS_KEY_SECRET'),
7 region: env('REGION'),
8 bucket: env('BUCKET'),
9 uploadPath: env('UPLOAD_PATH'),
10 baseUrl: env('BASE_URL'),
11 timeout: env('TIMEOUT'),
12 secure: env('OSS_SECURE'), //default to true
13 internal: env.bool('OSS_INTERNAL', false),
14 }
15 }
16});
Property | type | value |
---|---|---|
accessKeyId | string | <aliyun access key id> |
accessKeySecret | string | <aliyun access key secret> |
region | string | OSS region (see reference below) |
bucket | string | bucket name |
uploadPath | string | path to store the file |
baseUrl | string | can be your custom oss url for accessing the uploaded file, e.g. //www.website.com |
timeout | integer | OSS upload timeout (unit: seconds) |
secure | boolean | will https mode be enabled for oss client |
internal | boolean | access OSS with aliyun internal network or not, default is false. If your servers are running on aliyun too, you can set true to save lot of money. |
https://help.aliyun.com/document_detail/31837.html#title-qvx-r3a-xr4
Q: getting "The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint."
A: Check if the OSS region is correct for the bucket you're using
This repo is maintained periodically, any contribution is highly welcomed
npm install strapi-provider-upload-oss
Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.