MinIO: Conectando Node.js ao MinIO

Esta documentação faz parte do guia Introdução. Consulte o guia completo aqui: Como começar a usar o MinIO para armazenamento de objetos compatível com S3.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução MinIO Object Storage pronta a usar que proporciona uma série de benefícios, incluindo:

  • Transferências ilimitadas.
  • Preços simples, previsíveis e transparentes.
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://object-storage.sua-empresa.com).
  • Atualizações sem esforço com apenas um clique.
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.
  • Disponível na 🇪🇺 Europa e nos 🇺🇸 EUA.

Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução de alojamento MinIO Object Storage da Stackhero!

Existem dois métodos para conectar aplicações Node.js ao MinIO.

Primeiro, instale o pacote AWS SDK para Node.js:

npm install aws-sdk

Abaixo está um exemplo que mostra como conectar-se ao MinIO usando o AWS SDK:

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, // necessário com MinIO
  signatureVersion: 'v4'
});

// operação 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');
  }
);

// operação 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();

Para mais detalhes, visite a documentação Node.js do MinIO.

Se preferir usar o SDK MinIO para Node.js, instale-o usando npm:

npm install minio

Aqui está um exemplo de como conectar-se ao MinIO usando o SDK MinIO para Node.js:

const process = require('process');
const Minio = require('minio');

// Instancie o cliente MinIO com o endpoint e as chaves de acesso
const minioClient = new Minio.Client({
  endpoint: '<XXXXXX>.stackhero-network.com',
  port: 443,
  useSSL: true,
  accessKeyId: 'YOUR_ACCESS_KEY',
  secretAccessKey: 'YOUR_SECRET_KEY',
});

// Ficheiro a ser carregado
const file = '/tmp/photos-europe.tar';

// Crie um bucket chamado '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
    };
    // Carregar o ficheiro para o bucket 'europetrip' usando a API fPutObject
    minioClient.fPutObject(
      'europetrip',
      'photos-europe.tar',
      file,
      metaData,
      (err, etag) => {
        if (err) return console.log(err);
        console.log('File uploaded successfully.');
      }
    );
  }
);

Para mais informações, consulte a documentação do SDK Node.js do MinIO.