STACKJAVA

Code ví dụ Node.js upload file lên Minio

Code ví dụ Node.js upload file lên Minio.

(Xem thêm: Tự học Node.js qua ví dụ)

(Xem lại: MinIO là gì? Hướng dẫn cài đặt minio trên Windows)

1. Module minio

Module minio là một thư viện node.js cho phép chúng ta giao tiếp với các api của server minio như upload file, tạo buckets…

Cài đặt module minio:

npm i minio

Include module minio vào project node.js:

var Minio = require('minio')
 Ví dụ:
var Minio = require('minio')
 
var minioClient = new Minio.Client({
    endPoint: 'play.min.io',
    port: 9000,
    useSSL: true,
    accessKey: 'Q3AM3UQ867SPQQA43P2F',
    secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG'
});

Trong đó, minioClient là đối tượng làm việc trực tiếp với minio server:

  • endpoint: địa chỉ của server minio
  • port: cổng chạy minio trên server
  • useSSL: mã hóa SSL hay không (http or https)
  • accessKey: accessKey
  • privateKey: privateKey

Các bạn có thể thay đổi các thông tin trên giống với thông tin minio server của các bạn. Hoặc giữ nguyên thông tin như trên cũng được vì server play.min.io là server public được dùng để test minio

2. Code ví dụ Node.js upload file lên Minio

const Minio = require('minio');
 
var minioClient = new Minio.Client({
    endPoint: 'localhost',
    port: 9000,
    useSSL: false,
    accessKey: 'root',
    secretKey: 'abcd1234'
});

var file = 'E:/stackjava/nodejs-upload-minio/icon.png';


// Make a bucket called photos.
minioClient.makeBucket('photos', 'us-east-1', function(err) {
    if (err) {
    console.log(err)
  } else {
    console.log('Bucket created successfully in "us-east-1".')
  }
  
    var metaData = {
        'Content-Type': 'application/octet-stream'
    }
    // Using fPutObject API upload your file to the bucket photos.
    minioClient.fPutObject('photos', 'icon.png', file, metaData, function(err, etag) {
      if (err) return console.log(err)
      console.log('File uploaded successfully.')
    });
});

Trong ví dụ này mình thực hiện:

Kết quả:

 

Okay, done!

References: https://www.npmjs.com/package/minio