media server logo
Mostrar u ocultar la navegación
Inicio de Callaba

Almacenamientos

Usa Almacenamientos para registrar destinos reutilizables compatibles con S3 destinados a grabaciones, archivos copiados y contenido exportado.

Qué haceRegistrar un destino de almacenamiento externo

Elige este módulo cuandoNecesitas registrar un destino compatible con S3 para que otros módulos escriban en él.

Usa otro módulo cuandoUsa Archivos o Grabaciones para crear o copiar contenido; Almacenamientos solo registra el destino.

1Registra el destino2Prueba las credenciales3Úsalo en una transferencia
POST /api/storages/create
6 endpoints

Antes de empezar

Todos los métodos requieren un x-access-token administrativo. Prepara un endpoint de bucket compatible y credenciales con solo los permisos necesarios para el flujo. Las claves de acceso y secretas son valores de solo escritura y no se devuelven en los métodos de lectura.

Qué puedes hacer

  • create y update registran o modifican un destino de almacenamiento.
  • getAll, getCount y getById consultan los destinos configurados.
  • remove elimina el registro de un destino.

Flujo de ejemplo

{
  "name": "Event archive",
  "type": "STORAGE_TYPE_S3",
  "bucket_url": "https://media.example.s3.amazonaws.com",
  "access_key": "ACCESS_KEY_ID",
  "secret_key": "SECRET_ACCESS_KEY",
  "meta_data": {}
}
  1. Crea el destino de almacenamiento antes del evento.
  2. Copia en él un archivo pequeño que no sea de producción.
  3. Comprueba el objeto y la política de acceso en el destino.
  4. Referencia el identificador del almacenamiento desde el flujo de transferencia de producción.

Casos de uso habituales

  • Archivar grabaciones finalizadas en AWS S3 o en un almacenamiento compatible.
  • Separar la entrega editorial de los buckets de retención a largo plazo.
  • Rotar las credenciales del destino sin modificar los flujos que lo referencian.

Límites y resolución de problemas

Los métodos de lectura no pueden recuperar los valores secretos guardados. Un endpoint, política de bucket, región, credencial o regla de red incorrectos pueden hacer que la transferencia falle aunque exista el registro del destino. Valida cada cambio con una copia pequeña.

Siguientes pasos

Usa Archivos para copiar contenido a este destino y supervisar el progreso de la transferencia.

Receta de solución REST

Registrar almacenamiento de objetos reutilizable

Crea una vez un destino compatible con S3 y usa su id en flujos de copia y retención.

  1. Registrar el destinoGuarda el tipo, la URL del bucket y las credenciales.POST /api/storages/create
  2. Confirmar el recursoConsulta la configuración no secreta antes de usar su id.POST /api/storages/getById

Trata las claves como credenciales de solo escritura. Verifica la política del bucket y el mínimo privilegio.

POST
/api/storages/create
Requiere token de administrador

Registra un destino antes de usar almacenamiento externo en grabaciones, archivos o transferencias.

Valida el bucket y los metadatos y deja el destino disponible para producción. Las plantillas cubren proveedores compatibles con S3 como AWS S3 y Backblaze.

Destino de almacenamiento AWS S3

Usa este preajuste cuando las grabaciones o los recursos copiados deban guardarse en un bucket de AWS S3.

Destino de almacenamiento AWS S3
Copiar código
curl --request POST \
--url http://localhost/api/storages/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "AWS media archive",
"type": "STORAGE_TYPE_S3",
"bucket_url": "https://my-media-bucket.s3.us-east-1.amazonaws.com",
"access_key": "AWS_ACCESS_KEY_ID",
"secret_key": "AWS_SECRET_ACCESS_KEY",
"redis_meta_data_url": "redis://localhost:6379/2",
"meta_data": {}
}'
Destino de almacenamiento Backblaze

Usa este preajuste cuando el backend de almacenamiento sea Backblaze y la URL del bucket siga el formato del endpoint de Backblaze compatible con S3.

Destino de almacenamiento Backblaze
Copiar código
curl --request POST \
--url http://localhost/api/storages/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Backblaze media archive",
"type": "STORAGE_TYPE_BACKBLAZE",
"bucket_url": "https://s3.us-east-005.backblazeb2.com/my-media-bucket",
"access_key": "B2_KEY_ID",
"secret_key": "B2_APPLICATION_KEY",
"redis_meta_data_url": "redis://localhost:6379/2",
"meta_data": {}
}'
Parámetros del cuerpo de la solicitud
Identidad
name
string
Copiar enlace directo

Etiqueta en el panel: Nombre del almacenamiento.

Nombre único del almacenamiento. Antes de crear el objeto, el backend valida que el nombre cumpla el patrón y la longitud permitidos.

Ubicación
type
string
Copiar enlace directo

Etiqueta en el panel: Ubicación.

Los valores reales del producto incluyen STORAGE_TYPE_S3, STORAGE_TYPE_BACKBLAZE y un tipo de disco interno usado como valor predeterminado del modelo.

bucket_url
string
Copiar enlace directo

Etiqueta en el panel: URL del bucket.

URL completa del bucket usado como destino de almacenamiento.

Credenciales
access_key
string
Copiar enlace directo

Etiqueta en el panel: Clave de acceso (ID de clave).

Campo de credencial de solo escritura que se utiliza al crear o actualizar el almacenamiento.

secret_key
string
Copiar enlace directo

Etiqueta en el panel: Clave secreta (clave de aplicación).

Campo de credencial de solo escritura que se utiliza al crear o actualizar el almacenamiento.

Backend de metadatos
redis_meta_data_url
string
Copiar enlace directo

Etiqueta en el panel: URL de metadatos.

Backend de metadatos Redis que utiliza la capa de montaje del almacenamiento.

meta_data
object
Copiar enlace directo

Objeto opcional de metadatos que se guarda con el destino de almacenamiento.

Crear almacenamiento
Copiar código
curl --request POST \
--url http://localhost/api/storages/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "AWS media archive",
"type": "STORAGE_TYPE_S3",
"bucket_url": "https://my-media-bucket.s3.us-east-1.amazonaws.com",
"access_key": "AWS_ACCESS_KEY_ID",
"secret_key": "AWS_SECRET_ACCESS_KEY",
"redis_meta_data_url": "redis://localhost:6379/2",
"meta_data": {}
}'
Respuesta
Identidad
_id / id / name
mixed
Copiar enlace directo

Identificadores del objeto de almacenamiento y nombre guardado del almacenamiento.

Ubicación
type / bucket_url / folder_name
mixed
Copiar enlace directo

Tipo de almacenamiento, URL del bucket y nombre normalizado de la carpeta derivado del nombre del almacenamiento.

Backend de metadatos
redis_meta_data_url / meta_data
mixed
Copiar enlace directo

Campos guardados del backend de metadatos para el objeto de almacenamiento.

Runtime
created
string
Copiar enlace directo

Marca de tiempo de creación administrada por el backend.

Seguridad
credential material
not returned in later lookups
Copiar enlace directo

Los flujos de creación y actualización aceptan credenciales, pero los métodos de listado y consulta omiten intencionadamente los campos secretos en la respuesta al cliente.

Respuesta: Crear almacenamiento
JSON
Copiar código
{
"_id": "6a0011223344556677889900",
"id": "6a0011223344556677889900",
"name": "AWS media archive",
"type": "STORAGE_TYPE_S3",
"bucket_url": "https://my-media-bucket.s3.us-east-1.amazonaws.com",
"redis_meta_data_url": "redis://localhost:6379/2",
"meta_data": {},
"folder_name": "aws-media-archive",
"created": "2026-03-24T18:00:00.000Z",
"success": true
}
POST
/api/storages/getCount
Requiere token de administrador
POST
/api/storages/getAll
Requiere token de administrador
POST
/api/storages/getById
Requiere token de administrador
POST
/api/storages/update
Requiere token de administrador
DELETE
/api/storages/remove
Requiere token de administrador