文档

JavaScript 快速入门指南

适用于 Amazon S3 兼容云存储的 MinIO JavaScript 库 Slack

NPM

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 对象存储服务器需要以下参数

参数

描述

endPoint

对象存储服务的 hostname。

port

TCP/IP 端口号。可选,HTTP 默认值为 80,HTTPs 默认值为 443

accessKey

S3 服务中帐户的访问密钥(用户 ID)。

secretKey

S3 服务中帐户的密钥(密码)。

useSSL

可选,设置为 '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 参考在此处提供

存储桶操作

文件对象操作

对象操作

预签名操作

存储桶通知操作

存储桶策略操作

示例

存储桶操作

文件对象操作

对象操作

预签名操作

存储桶通知操作

存储桶策略操作

自定义设置

进一步探索

贡献

GitHub Workflow Status