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' 的 bucket
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 將文件上傳到 bucket '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 文檔。