跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

JavaScript 快速入门指南

使用 MinIO JavaScript SDK 从 Node.js 应用连接 SILO。

MinIO JavaScript SDK

SILO 实现兼容 S3 的服务端契约,因此 Node.js 应用可以直接使用上游 MinIO JavaScript SDK。请选择受所用软件包版本支持、且仍在维护的 Node.js 版本。

安装软件包

npm install minio

该软件包已内置 TypeScript 类型声明,不要再安装旧的 @types/minio 软件包。

配置连接

export S3_ENDPOINT=127.0.0.1
export S3_PORT=9000
export S3_ACCESS_KEY=silo-admin
export S3_SECRET_KEY=replace-with-a-strong-secret
export S3_USE_SSL=false

不要把凭据写进源码仓库。连接启用 TLS 的部署时,请将 S3_USE_SSL 设为 true,并使用对应的 TLS 服务端口。

创建存储桶并上传对象

将下面的内容保存为 quickstart.mjs

import * as Minio from 'minio'

const required = (name) => {
  const value = process.env[name]
  if (!value) throw new Error(`${name} is required`)
  return value
}

const client = new Minio.Client({
  endPoint: required('S3_ENDPOINT'),
  port: Number(process.env.S3_PORT || 9000),
  useSSL: process.env.S3_USE_SSL === 'true',
  accessKey: required('S3_ACCESS_KEY'),
  secretKey: required('S3_SECRET_KEY'),
})

const bucket = 'javascript-quickstart'
const objectName = 'hello.txt'

if (!(await client.bucketExists(bucket))) {
  await client.makeBucket(bucket, 'us-east-1')
}

await client.putObject(
  bucket,
  objectName,
  Buffer.from('hello from SILO\n'),
  { 'Content-Type': 'text/plain' },
)

const stat = await client.statObject(bucket, objectName)
console.log(`Uploaded ${objectName}: ${stat.size} bytes`)

运行:

node quickstart.mjs

存储桶策略、通知、对象锁、预签名 URL、分段操作与其他 API 见仓库的 API 参考持续维护的示例目录。长期文档应优先链接稳定目录,而不是持续复制单个示例文件名的假设。

生产检查清单

  • 启用 TLS,并验证服务端证书。
  • 从密钥管理系统或受保护的环境中加载凭据。
  • 只授予应用实际需要的存储桶与对象权限。
  • 一并固定并验证 SDK 版本、Node.js 运行时、超时行为与重试策略。
  • 显式处理数据流、请求错误、未完成的分段上传与进程退出。

服务端策略配置见身份与访问管理