0.0.3 • Published 8 years ago

multer-ali-oss v0.0.3

Weekly downloads
44
License
ISC
Repository
github
Last release
8 years ago

multer-ali-oss

Streaming multer storage engine for Aliyun OSS.

Installation

npm install --save multer-ali-oss

Usage

var multer  = require('multer');
var aliOssStorage = require('multer-ali-oss');

var upload = multer( {
  storage: aliOssStorage({
    config: {
      region: '<region>',
      accessKeyId: '<accessKeyId>',
      accessKeySecret: '<accessKeySecret>',
      bucket: '<bucket>',
    },
    filename: function (req, file, cb) {
      cb(null, file.fieldname + '-' + Date.now())
    }
  })
}).single('upload');

router.post('/', function(req, res, next) {
  upload(req, res, function (err) {
    if (err) {
      // handle error
    }

    var result = {
      "uploaded": 1,
      'name': req.file.name,
      "url": req.file.url
    };

    res.render('result', {});
  });
});

File information

Each file contains the following information:

KeyDescriptionNote
fieldnameField name specified in the form
originalnameName of the file on the user's computer
encodingEncoding type of the file
mimetypeMime type of the file
sizeSize of the file in bytes
nameName of the fileAliOssStorage
urlUrl of the file on OSSAliOssStorage

Notice

As the ali-oss, one of the dependencies, using the ES6 features. The app depends on this package should start with --harmony.

AliOssStorage

You need to specify the region, accessKeyId, accessKeySecret, bucket.

var aliOssStorage = require('multer-ali-oss');
var storage = aliOssStorage({
  config: {
    region: '<region>',
    accessKeyId: '<accessKeyId>',
    accessKeySecret: '<accessKeySecret>',
    bucket: '<bucket>',
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

var upload = multer({ storage: storage })

There is one option available, filename. It is a function that determine where the file should be stored.

filename is used to determine what the file should be named. If no filename is given, each file will be given a random name that doesn't include any file extension.