参考【GitCode - 全球开发者的开源社区,开源代码托管平台】
注意事项:nodejs服务,文件扩展名为mjs,版本号8.0,引入的时候
import * as Minio from 'minio'
import Minio as * from 'minio'
// 实例化对象存储服务的MinIO客户端
// play.min.io是MinIO的公共测试集群
const minioClient = new Minio.Client({
endPoint: 'play.min.io',
port: 9000,
useSSL: true,
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
})
// 要上传的文件
const sourceFile = '/tmp/test-file.txt'
// 目标桶
const bucket = 'js-test-bucket'
// 目标对象名称
const destinationObject = 'my-test-file.txt'
// 检查桶是否存在
// 如果不存在,则创建桶
const exists = await minioClient.bucketExists(bucket)
if (exists) {
console.log('Bucket ' + bucket + ' exists.')
} else {
await minioClient.makeBucket(bucket, 'us-east-1')
console.log('Bucket ' + bucket + ' created in "us-east-1".')
}
// 设置对象元数据
const metaData = {
'Content-Type': 'text/plain',
'X-Amz-Meta-Testing': 1234,
example: 5678,
}
// 使用fPutObject上传文件
// 如果同名对象已存在,会用新数据更新
await minioClient.fPutObject(bucket, destinationObject, sourceFile, metaData)
console.log('File ' + sourceFile + ' uploaded as object ' + destinationObject + ' in bucket ' + bucket)
accessKey和secretKey注意要从服务端生成
执行命令:到文件所在文件夹打开终端
node file-uploader.mjs // file-uploader.mjs为文件名