Strapi plugin logo for Aliyun OSS

Aliyun OSS
Plugin verified by Strapi

Aliyun OSS provider for Strapi

strapi-provider-upload-oss

A provider for strapi server to upload file to Aliyun OSS.

Requirements

  • Node.js >= 10
  • npm > 6

Installation

$ 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

Usage

Strapi v4

The lastest version of the provider supports v4 by default, configuration is updated a little bit. See example below for ./config/plugins.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module.exports = ({ env }) => ({
  upload: {
    config: {
      provider: 'strapi-provider-upload-oss', // full package name is required
      providerOptions: {
        accessKeyId: env('ACCESS_KEY_ID'),  // required
        accessKeySecret: env('ACCESS_KEY_SECRET'), // required
        region: env('REGION'), // required
        bucket: env('BUCKET'), // required
        uploadPath: env('UPLOAD_PATH'),
        baseUrl: env('BASE_URL'),
        timeout: env('TIMEOUT'),
        secure: env('OSS_SECURE'),
        internal: env.bool('OSS_INTERNAL', false),
        bucketParams: {
          ACL: 'private', // default is 'public-read'
          signedUrlExpires: 60 * 60 // default is 30 * 60 (30min)
        }
      }
    }
  }
});

Official documentation here

Strapi v3

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module.exports = ({ env }) => ({
  upload: {
    provider: 'oss',
    providerOptions: {
      accessKeyId: env('ACCESS_KEY_ID'),
      accessKeySecret: env('ACCESS_KEY_SECRET'),
      region: env('REGION'),
      bucket: env('BUCKET'),
      uploadPath: env('UPLOAD_PATH'),
      baseUrl: env('BASE_URL'),
      timeout: env('TIMEOUT'),
      secure: env('OSS_SECURE'), //default to true
      internal: env.bool('OSS_INTERNAL', false),
    }
  }
});

Provider Options

Propertytypevalue
accessKeyIdstring<aliyun access key id>
accessKeySecretstring<aliyun access key secret>
regionstringOSS region (see reference below)
bucketstringbucket name
uploadPathstringpath to store the file
baseUrlstringcan be your custom oss url for accessing the uploaded file, e.g. //www.website.com
timeoutintegerOSS upload timeout (unit: seconds)
securebooleanwill https mode be enabled for oss client
internalbooleanaccess 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.

OSS Region reference

https://help.aliyun.com/document_detail/31837.html#title-qvx-r3a-xr4

Troubleshooting

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

Contribution

This repo is maintained periodically, any contribution is highly welcomed

Install now

npm install strapi-provider-upload-oss

STATS

64 GitHub stars41 weekly downloads

Last updated

120 days ago

Strapi Version

Unavailable

Author

github profile image for hezzze
hezzze

Related plugin

Upload

Useful links

Create your own plugin

Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.