Descripción general
La API de almacenamiento proporciona almacenamiento de archivos basado en depósitos similar a S3. Carga, descarga y gestiona archivos con soporte para backend de almacenamiento local y compatible con S3.
Encabezados
Para invocaciones de funciones autenticadas:
Para puntos finales de administrador:
Cargar objeto con estrategia de carga
InsForge admite dos tipos de backend de almacenamiento:
- Almacenamiento local: Los archivos se almacenan en el sistema de archivos local. Usar para desarrollo o producción de bajo volumen.
- Compatible con S3: Los archivos se almacenan en almacenamiento de objetos compatible con S3. Usar para producción de alto volumen.
Los pasos para cargar un archivo son:
- Obtener estrategia de carga
- Cargar archivo
- Confirmar carga (solo S3)
Paso 1: Obtener estrategia de carga
Obtén la estrategia de carga óptima (URL directo o presignado) según el backend de almacenamiento.
La API de estrategia de carga devuelve el método de carga óptimo según el backend de almacenamiento:
- Almacenamiento local: Carga directa a la API de InsForge
- Compatible con S3: URL presignada para carga directa a S3
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|
filename | string | Sí | Nombre de archivo original |
contentType | string | No | Tipo MIME del archivo |
size | integer | No | Tamaño de archivo en bytes |
Ejemplo
Respuesta (Backend S3)
Respuesta (Almacenamiento local)
Paso 2: Cargar archivo
Carga el archivo a la URL especificada usando el método proporcionado.
- Almacenamiento local: Usa una solicitud PUT a
uploadUrl con multipart/form-data y un campo file.
- Compatible con S3: Usa una solicitud POST a
uploadUrl con multipart/form-data y un campo file. Incluye todos los campos del objeto fields en la solicitud.
Paso 3: Confirmar carga presignada (solo S3)
Confirma que un archivo se ha cargado correctamente a S3 usando URL presignada.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|
size | integer | Sí | Tamaño de archivo en bytes |
contentType | string | No | Tipo MIME del archivo |
etag | string | No | ETag S3 del objeto cargado |
Ejemplo
Respuesta
Cargar objeto (Depreciado)
Carga un archivo a un cubo con una clave específica.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|
bucketName | string | Nombre del cubo |
objectKey | string | Clave de objeto (puede incluir / para carpetas pseudocargas) |
Cuerpo de la solicitud
multipart/form-data con un campo file.
Ejemplo
Respuesta
Cargar con clave generada automáticamente (Depreciado)
Carga un archivo con una clave única generada automáticamente.
Ejemplo
Respuesta
Descargar objeto con estrategia de descarga
InsForge admite dos tipos de backend de almacenamiento:
- Almacenamiento local: Los archivos se almacenan en el sistema de archivos local. Usar para desarrollo o producción de bajo volumen.
- Compatible con S3: Los archivos se almacenan en almacenamiento de objetos compatible con S3. Usar para producción de alto volumen.
Los pasos para descargar un archivo son:
- Obtener estrategia de descarga
- Descargar archivo de la URL devuelta
Paso 1: Obtener estrategia de descarga
Obtén la estrategia de descarga óptima (URL directo o presignado) según el backend de almacenamiento y la visibilidad del cubo.
La API de estrategia de descarga devuelve el método de descarga óptimo según el backend de almacenamiento y la visibilidad del cubo:
- Almacenamiento local: Descarga directa de la API de InsForge
- Compatible con S3: URL presignada para S3.
La expiración (para URL presignadas) se calcula automáticamente en el servidor desde el cubo
visibilidad. El punto final no toma cuerpo de solicitud. objectKey puede contener
/ (carpetas pseudocargas) — no codifiques por porcentaje los separadores.POST /api/storage/buckets/{bucketName}/objects/{objectKey}/download-strategy
se retiene como un alias deprecado en la ruta original para versiones más antiguas de SDK
y se eliminará en una futura versión principal. Migra a GET.
Ejemplo
Respuesta (Cubo S3 público)
Respuesta (Cubo S3 privado)
Paso 2: Descargar archivo
Descarga el archivo de la URL devuelta, usando el método apropiado.
Descargar objeto (Depreciado)
Descarga un archivo de un cubo.
Ejemplo
Respuesta
Contenido de archivo binario con encabezados Content-Type y Content-Length apropiados.
Eliminar objeto
Elimina un archivo de un cubo.
Ejemplo
Respuesta
Listar objetos en cubo
Lista todos los objetos en un cubo con filtrado opcional.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|
prefix | string | Filtrar por prefijo de clave (ej., users/) |
search | string | Buscar objetos por clave (coincidencia parcial) |
limit | integer | Máximo de objetos a devolver (1-1000, predeterminado: 100) |
offset | integer | Número de objetos a omitir |
Ejemplo
Respuesta
Gestión de cubos (Administrador)
Listar todos los cubos
Ejemplo
Respuesta
Crear cubo
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|
bucketName | string | Sí | Nombre de cubo (alfanumérico, guión bajo, guión) |
isPublic | boolean | No | Si el cubo es accesible públicamente (predeterminado: true) |
Ejemplo
Respuesta
Actualizar cubo
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|
isPublic | boolean | Sí | Si el cubo es accesible públicamente |
Ejemplo
Respuesta
Eliminar cubo
Ejemplo
Respuesta
Respuestas de error
Cubo no encontrado (404)
Objeto no encontrado (404)
Archivo inválido (400)
El cubo ya existe (409)