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" }
}
}