MinIO: 将 Node.js 连接到 MinIO
本文件是入门指南指南的一部分。您可以在这里查看完整指南:如何开始使用 MinIO 进行 S3 兼容的对象存储。
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即用型 MinIO Object Storage 解决方案,具有多种优势,包括:
- 无限传输。
- 简单、可预测且透明的定价。
- 使用 HTTPS 保护的可定制域名(例如,https://object-storage.your-company.com)。
- 只需点击即可轻松更新。
- 由私有和专用 VM提供的最佳性能和强大安全性。
- 在🇪🇺 欧洲和🇺🇸 美国均可用。
节省时间并简化您的生活:只需 5 分钟即可试用 Stackhero 的 MinIO Object Storage hosting 解决方案!
有两种方法可以将 Node.js 应用程序连接到 MinIO。
使用 AWS SDK 连接到 MinIO
首先,安装 AWS SDK for Node.js 包:
npm install aws-sdk
下面是一个示例,展示如何使用 AWS SDK 连接到 MinIO:
const process = require('process');
const AWS = require('aws-sdk');
const s3 = new AWS.S3({
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_KEY',
endpoint: 'https://<XXXXXX>.stackhero-network.com',
s3ForcePathStyle: true, // MinIO 需要
signatureVersion: 'v4'
});
// putObject 操作
s3.putObject(
{ Bucket: 'testbucket', Key: 'testobject', Body: 'Hello from MinIO!' },
(err, data) => {
if (err)
console.log(err);
else
console.log('Successfully uploaded data to testbucket/testobject');
}
);
// getObject 操作
const file = require('fs').createWriteStream('/tmp/mykey');
s3.getObject({ Bucket: 'testbucket', Key: 'testobject' })
.on('httpData', chunk => file.write(chunk))
.on('httpDone', () => file.end())
.send();
有关更多详细信息,请访问 MinIO Node.js 文档。
使用 MinIO SDK 连接到 MinIO
如果您更喜欢使用 MinIO SDK for Node.js,请使用 npm 安装:
npm install minio
下面是一个示例,展示如何使用 MinIO SDK for Node.js 连接到 MinIO:
const process = require('process');
const Minio = require('minio');
// 使用端点和访问密钥实例化 MinIO 客户端
const minioClient = new Minio.Client({
endpoint: '<XXXXXX>.stackhero-network.com',
port: 443,
useSSL: true,
accessKeyId: 'YOUR_ACCESS_KEY',
secretAccessKey: 'YOUR_SECRET_KEY',
});
// 要上传的文件
const file = '/tmp/photos-europe.tar';
// 创建一个名为 'europetrip' 的存储桶
minioClient.makeBucket(
'europetrip',
'us-east-1',
err => {
if (err) return console.log(err);
console.log('Bucket created successfully in "us-east-1".');
const metaData = {
'Content-Type': 'application/octet-stream',
'X-Amz-Meta-Testing': 1234,
'example': 5678
};
// 使用 fPutObject API 将文件上传到存储桶 'europetrip'
minioClient.fPutObject(
'europetrip',
'photos-europe.tar',
file,
metaData,
(err, etag) => {
if (err) return console.log(err);
console.log('File uploaded successfully.');
}
);
}
);
有关更多信息,请参阅 MinIO Node.js SDK 文档。