@namatery/multer-minio
v1.1.3
Published
A simple storage engine for Multer to upload files on Minio storage.
Downloads
464
Readme
A simple Storage Engine for Minio to upload files to Minio at the middleware level with Multer. To write your own Storage Engine, check out this page.
How to install
To use this package you can easily install it via npm:
npm install @namatery/multer-minioHow to use
NOTE 1: multer-minio is just a storage engine for Multer, so you need to first install it via this link.
NOTE 2: multer-minio needs an instance of the
Clientclass to connect to Minio. For more information, see Minio API Document.
MinioStorageEngine
A class that you can import from @namatery/multer-minio:
const { Client } = require('minio');
const { MinioStorageEngine } = require('@namatery/multer-minio');
const minioClient = new Client({
port: PORT,
endPoint: END_POINT,
accessKey: ACCESS_KEY,
secretKey: SECRET_KEY,
});
const options = {
path: '/path/in/bucket',
region: 'us-east-1',
bucket: {
init: true,
versioning: false,
forceDelete: false,
},
object: {
name: (req, file) => {
return `${new Date()}-${file.originalname}`;
},
useOriginalFilename: false,
},
};
const storage = new MinioStorageEngine(minioClient, 'test', options);Options
| Name | Description | Required | Default |
| -------------------------- | ------------------------------------------------------------- | -------- | --------- |
| path | The path of the file in the bucket. | False | / |
| region | The region where the bucket is created. | False | us-east-1 |
| bucket.init | If true, the bucket is created if it does not exist. | False | False |
| bucket.versioning | Can be Enabled or Suspended. | False | False |
| bucket.forceDelete | If true, objects will be removed even if versioning was enabled. | False | False |
| object.name | Can be null or a function that returns the name of the object. | False | uuid |
| object.useOriginalFilename | If true, the name of the original file will be used. | False | False |
Example
Check out [this link][Example] to see a full example:
