A flexible webpack plugin to upload files to aliyun oss, which supports multiple optional upload methods and parameters.
This plugin only works with webpack version above 4.0
-
Supports 3 alternative upload methods that aliyun oss supports.
-
Supports multipart upload and retries at the breakpoints.
-
Can custom timeout to drop the request.
-
Can control how many http request threads are created at the meanwhile. Too many threads may result in an error returned from aliyun.
-
Can switch debug mode to decide whether or not showing verbose log.
npm i webpack-alioss-upload-plugin -D
or
yarn add webpack-alioss-upload-plugin -D
Here is a simplest usage.
const AliOSSUploadPlugin = require("webpack-alioss-upload-plugin");
// webpack config
module.exports = {
plugins: [
new AliOSSUploadPlugin({
accessKeyId: "your.oss.accessKeyId",
accessKeySecret: "your.oss.accessKeySecret",
region: "your.oss.region",
bucket: "your.oss.bucket"
})
]
};
accessKeyId
: [String] the accessKeyId of your oss,required
.accessKeySecret
: [String] the accessKeySecret of your oss,required
.region
: [String] the region of your oss,required
.bucket
: [String] the bucket name of your oss,required
.prefix
: [String] the path to direct to files on oss, if configured, it looks like "https://${bucket}.${region}.aliyuncs.com/${prefix}/local-resolved-file-name", default''
.uploadType
: [String] has three types(put
|stream
|multipart
), corresponding to alioss's upload methods(put
|putStream
|multipart
), defaultmultipart
, more info see here.uploadOptions
: [Object]parallel
: [Number] the number of parts to be uploaded in parallel, default4
.partSize
: [Number] the suggested size for each part inKB
, default204800
(200M), alioss's minimum partsize must larger than 100M.timeout
: [Number] the operation timeout in milliseconds, default6000
.retries
: [Number] retry times if multipart upload is interrupted, only work when uploadType ismultipart
useChunk
: [Boolean] whether or not usechunked encoding
, only work when uploadType isstream
, defaultfalse
, more info see here.
concurrency
: [Number] allow how many upload event to be created at the meanwhile, default3
, may your system may crash if this parameter is too large.excludes
: [RegExp|Array[RegExp]] files not wanting to upload to oss, default[]
.debug
: [Boolean] whether or not show verbose log on command line, defaultfalse
.
Feel free to contribute code or publish an issue, whenever you have any good idea or find a bug.
Javen Leung