共计 2354 个字符,预计需要花费 6 分钟才能阅读完成。
Minio
安装 Minio
MinIO 下载
下载完,服务端和客户端后,最好像我这样做,去分一下路径。
安装完后,进入 bin 目录输入以下指令:
setx MINIO_ROOT_USER admin
setx MINIO_ROOT_PASSWORD password
minio.exe server D:miniodata --console-address "127.0.0.1:9000" --address "127.0.0.1:9005"
minio.exe serever 启动服务
D:miniodata 数据存放位置
–console-address“127.0.0.1:9000”设置控制台端口
–address“127.0.0.1:9005”设置服务端口
启动服务后需要注意这两个位置:
可以访问 http://127.0.0.1:9000
去查看控制台。
安装 SDK
这里我就演示 Node.js 的 SDK 常用使用方法。
安装
yarn add minio
基本使用
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)
})
原文地址: Nodejs 中使用 Minio
正文完