JavaScript 快速入门指南
适用于 Amazon S3 兼容云存储的 MinIO JavaScript 库
MinIO JavaScript 客户端 SDK 提供高级 API 来访问任何 Amazon S3 兼容的对象存储服务器。
本指南将向您展示如何安装客户端 SDK 并执行示例 JavaScript 程序。有关 API 和示例的完整列表,请查看 JavaScript 客户端 API 参考 文档。
本文档假设您有一个可用的 Node.js 开发环境,LTS 版本 v16、v18 或 v20。
从 NPM 下载
npm install --save minio
从源代码下载
git clone https://github.com/minio/minio-js
cd minio-js
npm install
npm run build
npm install -g
与 TypeScript 一起使用
minio>7.1.0
附带内置类型定义,不再需要 @types/minio
。
初始化 MinIO 客户端
连接到 MinIO 对象存储服务器需要以下参数
参数 |
描述 |
---|---|
|
对象存储服务的 hostname。 |
|
TCP/IP 端口号。可选,HTTP 默认值为 |
|
S3 服务中帐户的访问密钥(用户 ID)。 |
|
S3 服务中帐户的密钥(密码)。 |
|
可选,设置为 'true' 以启用安全 (HTTPS) 访问。 |
import * as Minio from 'minio'
const minioClient = new Minio.Client({
endPoint: 'play.min.io',
port: 9000,
useSSL: true,
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
})
快速入门示例 - 文件上传器
此示例连接到对象存储服务器,创建一个存储桶,并将文件上传到存储桶。它使用 MinIO play
服务器,这是一个位于 https://play.min.io 的公共 MinIO 集群。
该 play
服务器运行最新稳定的 MinIO 版本,可用于测试和开发。此示例中显示的访问凭据对公众开放。上传到 play
的所有数据应视为公开且不受保护的。
file-uploader.mjs
import * as Minio from 'minio'
// Instantiate the MinIO client with the object store service
// endpoint and an authorized user's credentials
// play.min.io is the MinIO public test cluster
const minioClient = new Minio.Client({
endPoint: 'play.min.io',
port: 9000,
useSSL: true,
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
})
// File to upload
const sourceFile = '/tmp/test-file.txt'
// Destination bucket
const bucket = 'js-test-bucket'
// Destination object name
const destinationObject = 'my-test-file.txt'
// Check if the bucket exists
// If it doesn't, create it
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".')
}
// Set the object metadata
var metaData = {
'Content-Type': 'text/plain',
'X-Amz-Meta-Testing': 1234,
example: 5678,
}
// Upload the file with fPutObject
// If an object with the same name exists,
// it is updated with new data
await minioClient.fPutObject(bucket, destinationObject, sourceFile, metaData)
console.log('File ' + sourceFile + ' uploaded as object ' + destinationObject + ' in bucket ' + bucket)
运行文件上传器
node file-uploader.mjs
Bucket js-test-bucket created successfully in "us-east-1".
File /tmp/test-file.txt uploaded successfully as my-test-file.txt to bucket js-test-bucket
使用 mc
验证对象是否已创建
mc ls play/js-test-bucket
[2023-11-10 17:52:20 UTC] 20KiB STANDARD my-test-file.txt
API 参考
完整的 API 参考在此处提供