Qiniu Cloud logo

Qiniu Cloud

By WilliamYang

A provider for strapi server to upload file to Qiniu Cloud

Latest version

v1.0.3

released January 4, 2024

npm install provider-upload-qiniu-cloud

provider-upload-qiniu-cloud

A provider for strapi server to upload file to Qiniu Cloud

Requirements

  • Node.js >= 14
  • npm > 8

Installation

$ npm install provider-upload-qiniu-cloud --save

or

$ yarn add provider-upload-qiniu-cloud --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. See example below for ./config/plugins.js:

module.exports = ({ env }) => ({
  upload: {
    config: {
      provider: 'provider-upload-qiniu-cloud', // full package name is required
      providerOptions: {
        accessKey: env('ACCESS_KEY', ''),
        secretKey: env('SECRET_KEY', ''),
        prefix: env('PREFIX', ''),
        zone: env('ZONE', 'Zone_z0'),
        bucket: env('BUCKET', ''),
        publicBucketDomain: env('PUBLIC_BUCKET_DOMAIN', ''),
        https: env('HTTPS', true),
        cdn: env('CDN', false),
      },
    },
  },
});

Official documentation here

Security Middleware Configuration

Due to the default settings in the Strapi Security Middleware you will need to modify the contentSecurityPolicy settings to properly see thumbnail previews in the Media Library. You should replace strapi::security string with the object bellow instead as explained in the middleware configuration documentation.

./config/middlewares.js

module.exports = [
  // ...
  {
    name: 'strapi::security',
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          'connect-src': ["'self'", 'https:'],
          'img-src': ["'self'", 'data:', 'blob:', '*'],
          'media-src': ["'self'", 'data:', 'blob:', '*'],
          upgradeInsecureRequests: null,
        },
      },
    },
  },
  // ...
];

Provider Options

Propertytypevalue
accessKeystring<qiniu access key id>
secretKeystring<qiniu access key secret>
bucketstringbucket name
prefixstringdir name in bucket
zonestringqiniu region (see Qiniu Development Documentation below)
publicBucketDomainstringcustom origin domain name for accessing the uploaded file, e.g. // example: http://if-pbl.qiniudn.com
httpsbooleanDomain with or without https
cdnbooleanWhether to use cdn acceleration when uploading

Qiniu Development Documentation

https://developer.qiniu.com/kodo/1289/nodejs

Submit your content

Share your work with the community and get it listed in the Strapi ecosystem for everyone to discover and use.

Submit
Submit your content