MinIO: Node.jsをMinIOに接続する

このドキュメントははじめにガイドの一部です。完全なガイドはこちらからご覧いただけます:S3互換のオブジェクトストレージとしてMinIOを使い始める方法

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供する、すぐに使えるMinIOオブジェクトストレージソリューションを提供しています。

  • 無制限の転送。
  • シンプルで予測可能、かつ透明な価格設定
  • HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://object-storage.your-company.com)。
  • ワンクリックで簡単に更新
  • プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ
  • 🇪🇺 ヨーロッパ🇺🇸 アメリカで利用可能。

時間を節約し、生活を簡素化: StackheroのMinIOオブジェクトストレージホスティングソリューションを試すのに5分しかかかりません!

Node.jsアプリケーションをMinIOに接続する方法は2つあります。

まず、Node.js用のAWS SDKパッケージをインストールします。

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ドキュメントを参照してください。

Node.js用のMinIO SDKを使用する場合は、npmを使用してインストールします。

npm install minio

以下は、Node.js用のMinIO SDKを使用して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ドキュメントを参照してください。