Saltar al contenido principal

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:
  1. Almacenamiento local: Los archivos se almacenan en el sistema de archivos local. Usar para desarrollo o producción de bajo volumen.
  2. 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:
  1. Obtener estrategia de carga
  2. Cargar archivo
  3. 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

CampoTipoRequeridoDescripción
filenamestringNombre de archivo original
contentTypestringNoTipo MIME del archivo
sizeintegerNoTamañ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

CampoTipoRequeridoDescripción
sizeintegerTamaño de archivo en bytes
contentTypestringNoTipo MIME del archivo
etagstringNoETag 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ámetroTipoDescripción
bucketNamestringNombre del cubo
objectKeystringClave 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:
  1. Almacenamiento local: Los archivos se almacenan en el sistema de archivos local. Usar para desarrollo o producción de bajo volumen.
  2. 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:
  1. Obtener estrategia de descarga
  2. 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ámetroTipoDescripción
prefixstringFiltrar por prefijo de clave (ej., users/)
searchstringBuscar objetos por clave (coincidencia parcial)
limitintegerMáximo de objetos a devolver (1-1000, predeterminado: 100)
offsetintegerNúmero de objetos a omitir

Ejemplo

Respuesta


Gestión de cubos (Administrador)

Listar todos los cubos

Ejemplo

Respuesta

Crear cubo

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
bucketNamestringNombre de cubo (alfanumérico, guión bajo, guión)
isPublicbooleanNoSi el cubo es accesible públicamente (predeterminado: true)

Ejemplo

Respuesta

Actualizar cubo

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
isPublicbooleanSi 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)