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:
- server minio ở địa chỉ http://localhost:9000
- tạo buckets với tên là
photos
- upload file ở địa chỉ
E:/stackjava/nodejs-upload-minio/icon.png
trên máy tính của mình lên bucket ‘photos
‘ và thực hiện lưu lại thành file với tênicon.png
Kết quả:
Okay, done!
References: https://www.npmjs.com/package/minio