Saltar a contenido

Almacenamiento y Gestión de Archivos

Almacena, organiza y recupera archivos en los buckets de GFile Plus.

Subir y organizar archivos en buckets

Almacena cualquier tipo de archivo — imágenes, videos, documentos, archivos comprimidos — organizados en buckets y carpetas.

Método 1: Subida directa

Sube un archivo directamente usando datos multipart.

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

Método 2: Crear registro y luego subir binario

Primero crea un registro de archivo en el bucket, luego sube el contenido binario por separado. Este enfoque reserva la entrada del archivo primero, permitiendo al usuario subir el contenido después (por ejemplo, mediante un formulario).

Paso 1 — Crear el registro del archivo:

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

La respuesta incluye el id del archivo:

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

Paso 2 — Subir el contenido binario:

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 @./mi-foto.jpg

Usa el id de la respuesta del Paso 1 como :fileId en la URL de reupload.

Tipos de archivo soportados:

Categoría Extensiones
Imágenes jpg, png, gif, webp, svg, bmp, ico, tiff
Videos mp4, avi, mov, mkv, webm, flv, wmv
Audio mp3, wav, ogg, flac, aac
Documentos pdf, doc, docx
Hojas de cálculo xls, xlsx, csv
Presentaciones ppt, pptx
Archivos comprimidos zip, tar, gz, rar, 7z
Fuentes ttf, otf, woff, woff2
Archivos de texto txt, md, json, xml, yaml, html, css, js

Descargar y ver archivos

Recupera el contenido de archivos para visualización en línea o como descarga.

# Ver archivo en línea (visualización en navegador)
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/view?apiKey=<your-api-key>"

# Descargar archivo como adjunto
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/download?apiKey=<your-api-key>" \
  -o archivo-salida.jpg

Descargas parciales con solicitudes de rango

Descarga rangos de bytes específicos para archivos grandes — útil para descargas reanudables o búsqueda en medios.

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

La respuesta incluye las cabeceras Content-Range y Accept-Ranges: bytes.

Reemplazar contenido de archivo sin cambiar metadatos

Re-sube el contenido binario de un archivo preservando su ID, cabeceras, alias y metadatos.

# Re-subir contenido del archivo
curl -X POST "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId/reupload?apiKey=<your-api-key>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @./archivo-actualizado.jpg

Obtener información de tamaño y tipo de archivo

Expande los metadatos del archivo para incluir tamaño calculado (legible) y tipo de archivo detectado.

# Obtener archivo con información de tamaño y tipo
curl "/api/v1/tenants/:tenantId/buckets/:bucketId/files/:fileId?expands=SIZE&expands=TYPE&apiKey=<your-api-key>"

La respuesta incluye:

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