multer-qiniu-cloud-storage

a custom multer for qiniu cloud storage

Usage no npm install needed!

<script type="module">
  import multerQiniuCloudStorage from 'https://cdn.skypack.dev/multer-qiniu-cloud-storage';
</script>

README

multer-qiniu-cloud-storage

multer-qiniu-cloud-storage is a multer custom store engine for Qiniu Cloud Storage service. multer-qiniu-cloud-storage 用于自定义七牛云对象存储的 multer storage 配置。

Installation

npm i multer-qiniu-cloud-storage -S

or

yarn add multer-qiniu-cloud-storage

Usage

In Nest

import qiniuStorage from 'multer-qiniu-cloud-storage';

@UseInterceptors(
    FileInterceptor('file', {
      storage: new qiniuStorage({
        destination: function (req, file, cb) {
          cb(null, '');
        },// optional
        filename: function (req, file, cb) {
          const uniqueSuffix =
            Date.now() + '-' + Math.round(Math.random() * 1e9);
          cb(null, file.fieldname + '-' + uniqueSuffix);
        },// optional
        ACCESS_KEY: '<Your ACCESS_KEY>',
        SECRET_KEY: '<You SECRET_KEY>',
        bucket: '<You bucket>',
      }),
    }),
  )
  uploadFile(@UploadedFile() file) {
    console.log(file)
  }

In Express

import * as multer from 'multer';
import * as express from 'express';
import qiniuStorage from 'multer-qiniu-cloud-storage';

const app = express();

const uploadHandler = multer({
  storage: new qiniuStorage({
    destination: function (req, file, cb) {
      cb(null, '');
    },// optional
    filename: function (req, file, cb) {
      const uniqueSuffix =
        Date.now() + '-' + Math.round(Math.random() * 1e9);
      cb(null, file.fieldname + '-' + uniqueSuffix);
    },// optional
    ACCESS_KEY: '<Your ACCESS_KEY>',
    SECRET_KEY: '<You SECRET_KEY>',
    bucket: '<You bucket>',
  }),
});

app.post('/upload', uploadHandler.any(), (req, res) => {
    console.log(req.files);
    res.json(req.files);
});

MulterQiniuCloudStorageOptions

Key Description required
ACCESS_KEY qiniu Cloud ACCESS_KEY 七牛云ACCESS_KEY Yes
SECRET_KEY qiniu Cloud SECRET_KEY 七牛云SECRET_KEY Yes
bucket qiniu Cloud bucket name 七牛云存储空间名 Yes
getUploadToken custom token 获取自定义凭证 No
destination The pseudo-folder to which the file has been saved 保存文件的文件夹 No
filename The name of the file on Qiniu Cloud Storage 保存时文件名 No
config Config options for Qiniu Cloud Storage 七牛云上传用的config对象 No
expires token expire time (default 1 hour)凭证的有效时间(默认有效期为1个小时) No