Saltar al contenido principal
POST
/
api
/
instance
/
s3
/
:instance
Actualizar S3
curl --request POST \
  --url https://api.example.com/api/instance/s3/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "enabled": true,
  "region": "<string>",
  "bucket": "<string>",
  "accessKey": "<string>",
  "secretKey": "<string>",
  "endpoint": "<string>",
  "pathPrefix": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Auth: TokenAccount o TokenInstanceRate-limit: Global (100/min) • Idempotente:

Descripción

Configura el almacenamiento S3 de la instancia. La secretKey es cifrada at-rest y nunca devuelta. Para almacenamiento S3-compatible (MinIO, Backblaze, DO Spaces), rellena endpoint con la URL.

Ejemplos

AWS S3

Apunta el almacenamiento al AWS S3 oficial: bucket ryzeapi-media en us-east-1, con endpoint vacío para usar el dominio default de AWS y prefijo media/myinstance/ para aislar los archivos.
curl -X POST "https://ryzeapi.cloud/api/instance/s3/my-instance" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "region": "us-east-1",
    "bucket": "ryzeapi-media",
    "accessKey": "AKIA...",
    "secretKey": "secret-redacted",
    "endpoint": "",
    "pathPrefix": "media/myinstance/"
  }'

MinIO self-hosted

Mismo formato que AWS, pero con endpoint apuntando a un MinIO interno (https://minio.internal.company.com). El mismo patrón funciona para DigitalOcean Spaces, Backblaze B2 y otros almacenamientos S3-compatibles.
curl -X POST "https://ryzeapi.cloud/api/instance/s3/my-instance" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "region": "us-east-1",
    "bucket": "whatsapp",
    "endpoint": "https://minio.internal.company.com",
    "accessKey": "minioadmin",
    "secretKey": "minioadmin",
    "pathPrefix": "ryzeapi/"
  }'

Deshabilitar

Envía solo enabled: false para deshabilitar el almacenamiento y eliminar las credenciales de la base de datos. Para volver a habilitar más tarde, todos los campos deben enviarse de nuevo.
curl -X POST "https://ryzeapi.cloud/api/instance/s3/my-instance" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{"enabled":false}'

Respuesta exitosa

200 OK
{
  "success": true,
  "message": "S3 configuration updated",
  "s3": {
    "enabled": true,
    "region": "us-east-1",
    "bucket": "ryzeapi-media",
    "accessKey": "AKIA...",
    "endpoint": "",
    "pathPrefix": "media/myinstance/"
  }
}
secretKey no aparece en la respuesta, el servidor nunca devuelve la clave en texto plano.

Parámetros de ruta

instance
string
requerido
Nombre de la instancia.

Cabeceras

token
string
requerido
TokenAccount o TokenInstance.
Content-Type
string
requerido
application/json.

Cuerpo de la solicitud

enabled
boolean
requerido
Habilita/deshabilita el S3 de la instancia. false limpia todos los campos.
region
string
Región (p. ej., us-east-1).
bucket
string
Nombre del bucket (debe existir; no se realiza creación).
accessKey
string
Access Key ID.
secretKey
string
Secret Access Key. Cifrada at-rest.
endpoint
string
Endpoint personalizado (MinIO, DO Spaces, Backblaze). Vacío para AWS S3 oficial.
pathPrefix
string
Prefijo de path (p. ej., media/myinstance/).

Notas

No hay testing de credenciales. El endpoint guarda la config sin validar si el bucket existe o si las credenciales funcionan, el error solo aparece cuando el próximo upload de media intenta autenticarse (visible en los logs del servidor).
Deshabilitar (enabled=false) elimina las credenciales de la base de datos. Para volver a habilitar más tarde, todos los campos deben enviarse de nuevo.

Errores

HTTPerror.messageCuándo
400Invalid request bodyJSON malformado.
401Invalid tokenToken faltante o inválido.
404Instance not foundNombre no existe.
429Rate limit exceeded. Try again later.Más de 100 req/min.
500Failed to update S3 configurationError de base de datos.
{
  "success": false,
  "error": {
    "message": "Failed to update S3 configuration"
  }
}