MinIO: 連接 Node.js 到 MinIO
此文件屬於入門指南指南的一部分。請在此處查看完整指南:如何開始使用 MinIO 作為 S3 兼容的物件存儲。
👋 歡迎瀏覽 Stackhero 文件!
Stackhero 提供即用型 MinIO Object Storage 平台,專為高可靠性及高速而設計。主要優勢包括:
- 無限數據傳輸,絕無隱藏收費。
- 簡單、可預測及透明收費。
- 以HTTPS 保護的自訂網域名稱(例如,https://object-storage.your-company.com)。
- 一鍵式、無需手動操作的無縫更新。
- 專屬私有基礎設施上的高效能及安全性。
- 支援🇪🇺 歐洲及🇺🇸 美國地區。
簡化您的工作流程,減少設定時間:您可以在 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 文檔。