Minio
安装Minio
MinIO下载
下载完,服务端和客户端后,最好像我这样做,去分一下路径。


安装完后,进入bin目录输入以下指令:
| |
| setx MINIO_ROOT_USER admin |
| |
| |
| setx MINIO_ROOT_PASSWORD password |
| |
| |
| minio.exe server D:\minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9005" |
复制
启动服务后需要注意这两个位置:

可以访问 http://127.0.0.1:9000
去查看控制台。
安装SDK
这里我就演示Node.js的SDK常用使用方法。
安装
复制
基本使用
| |
| const Minio = require('minio') |
| |
| |
| const minioClient = new Minio.Client({ |
| endPoint: '127.0.0.1', |
| port: 9005, |
| useSSL: false, |
| accessKey: 'minioadmin', |
| secretKey: 'minioadmin' |
| }) |
| |
| |
| minioClient.fPutObject('mybucket', 'myobject', './demofile.txt', (err, etag)=>{ |
| if (err) return console.log(err) |
| console.log('File uploaded successfully.') |
| }) |
复制
桶操作
创建
| |
| minioClient.makeBucket('mybucket', 'us-east-1', function(err) { |
| if (err) return console.log('Error creating bucket.', err) |
| console.log('Bucket created successfully.') |
| }) |
复制
列出存储桶
| minioClient.listBuckets(function(err, buckets) { |
| if (err) return console.log(err) |
| console.log('Buckets:', buckets) |
| }) |
复制
列出存储桶中的对象
| |
| const stream = minioClient.listObjects('mybucket', '', true) |
| stream.on('data', function(obj) { |
| console.log(obj) |
| }) |
| stream.on('error', function(err) { |
| console.log(err) |
| }) |
复制
删除存储桶
| minioClient.removeBucket('mybucket', function(err) { |
| if (err) return console.log('Unable to remove bucket', err) |
| console.log('Bucket removed successfully.') |
| }) |
复制
设置存储桶策略
| const policy = { |
| Version: '2012-10-17', |
| Statement: [ |
| { |
| Effect: 'Allow', |
| Principal: { AWS: ['*'] }, |
| Action: ['s3:GetObject'], |
| Resource: ['arn:aws:s3:::mybucket/*'] |
| } |
| ] |
| } |
| |
| |
| minioClient.setBucketPolicy('mybucket', JSON.stringify(policy), function(err) { |
| if (err) return console.log(err) |
| console.log('Bucket policy set successfully.') |
| }) |
复制
获取存储桶策略
| minioClient.getBucketPolicy('mybucket', function(err, policy) { |
| if (err) return console.log(err) |
| console.log('Bucket policy:', policy) |
| }) |
复制
对象操作
下载对象
| |
| minioClient.fGetObject('mybucket', 'myobject', './downloaded-myobject.txt', function(err) { |
| if (err) return console.log(err) |
| console.log('File downloaded successfully.') |
| }) |
复制
删除对象
| |
| minioClient.removeObject('mybucket', 'myobject', function(err) { |
| if (err) return console.log('Unable to remove object', err) |
| console.log('Removed the object successfully.') |
| }) |
复制
获取对象的元数据
| |
| minioClient.statObject('mybucket', 'myobject', function(err, stat) { |
| if (err) return console.log(err) |
| console.log(stat) |
| }) |
复制
生成对象的预签名 URL
| |
| const url = minioClient.presignedUrl('GET', 'mybucket', 'myobject', 24 * 60 * 60, function(err) { |
| if (err) return console.log(err) |
| console.log('Presigned URL:', url) |
| }) |
复制