Ir para o conteúdo

Armazenamento e Gerenciamento de Arquivos

Armazene, organize e recupere arquivos nos buckets do GFile Plus.

Upload e organização de arquivos em buckets

Armazene qualquer tipo de arquivo — imagens, vídeos, documentos, arquivos compactados — organizados em buckets e pastas.

Método 1: Upload direto

Faça upload de um arquivo diretamente usando dados multipart.

curl -X POST "/api/v1/tenants/:tenantId/buckets/:bucketId/files/upload?apiKey=<your-api-key>" \
  -F "file=@./minha-foto.jpg" \
  -F 'body={"name":"minha-foto.jpg","path":"/fotos/"}'

Método 2: Criar registro e depois fazer upload do binário

Primeiro crie um registro de arquivo no bucket, depois faça upload do conteúdo binário separadamente. Essa abordagem reserva a entrada do arquivo primeiro, permitindo ao usuário fazer upload do conteúdo depois (por exemplo, via formulário).

Passo 1 — Criar o registro do arquivo:

curl -X POST "/api/v1/tenants/:tenantId/buckets/:bucketId/files?apiKey=<your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{"name": "minha-foto.jpg", "path": "/fotos/"}'

A resposta inclui o id do arquivo:

{
  "id": "<file-id>",
  "name": "minha-foto.jpg",
  "path": "/fotos/"
}

Passo 2 — Fazer upload do conteúdo binário:

curl -X POST "/api/v1/tenants/:tenantId/buckets/:bucketId/files/<file-id>/reupload?apiKey=<your-api-key>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @./minha-foto.jpg

Use o id da resposta do Passo 1 como :fileId na URL de reupload.

Tipos de arquivo suportados:

Categoria Extensões
Imagens jpg, png, gif, webp, svg, bmp, ico, tiff
Vídeos mp4, avi, mov, mkv, webm, flv, wmv
Áudio mp3, wav, ogg, flac, aac
Documentos pdf, doc, docx
Planilhas xls, xlsx, csv
Apresentações ppt, pptx
Arquivos compactados zip, tar, gz, rar, 7z
Fontes ttf, otf, woff, woff2
Arquivos de texto txt, md, json, xml, yaml, html, css, js

Download e visualização de arquivos

Recupere o conteúdo de arquivos para visualização inline ou como download.

# Ver arquivo inline (exibição no navegador)
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/view?apiKey=<your-api-key>"

# Download de arquivo como anexo
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/download?apiKey=<your-api-key>" \
  -o arquivo-saida.jpg

Downloads parciais com requisições de intervalo

Baixe intervalos de bytes específicos para arquivos grandes — útil para downloads resumíveis ou seeking em mídia.

# Download dos bytes 0-1023 (primeiro 1KB)
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/view?apiKey=<your-api-key>" \
  -H "Range: bytes=0-1023"

A resposta inclui os cabeçalhos Content-Range e Accept-Ranges: bytes.

Substituir conteúdo do arquivo sem alterar metadados

Re-faça upload do conteúdo binário de um arquivo preservando seu ID, cabeçalhos, alias e metadados.

# Re-upload do conteúdo do arquivo
curl -X POST "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/reupload?apiKey=<your-api-key>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @./arquivo-atualizado.jpg

Obter informações de tamanho e tipo do arquivo

Expanda os metadados do arquivo para incluir tamanho calculado (legível) e tipo de arquivo detectado.

# Obter arquivo com informações de tamanho e tipo
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId?expands=SIZE&expands=TYPE&apiKey=<your-api-key>"

A resposta inclui:

{
  "expands": {
    "size": { "bytes": 2048576, "human": "2 MB" },
    "type": { "type": "IMAGE" }
  }
}