Almacenamiento S3 para registros de tareas en segundo plano
Descripción general
Los registros de tareas en segundo plano se almacenan localmente en ./files/logs/tasks/ de forma predeterminada. Para utilizar almacenamiento compatible con S3, configure los parámetros en el archivo de configuración.
Necesario para configuraciones tolerantes a fallos
En entornos tolerantes a fallos, las tareas en segundo plano se ejecutan en cada nodo del servidor de aplicaciones: un nodo puede ejecutar N tareas, otro nodo su propio conjunto. La pestaña Tareas en segundo plano en la interfaz web solo muestra los registros del nodo actual. Para ver los registros de tareas que se ejecutaron en otro nodo, debe conectarse directamente a ese nodo. Con el almacenamiento S3, todos los registros están disponibles desde un único almacén y puede verlos en la interfaz web sin cambiar entre nodos.
Archivo de configuración
Los parámetros de S3 se establecen en .env.local (o .env en Docker), ubicado en:
- Linux —
/var/www/.env.local - Windows Server —
C:\inetpub\wwwroot\passwork\.env.local - Docker —
/<passwork>/.env
Si el archivo no existe, créelo.
Parámetros
| Parámetro | Descripción |
|---|---|
APP_FILES_SOURCE | Fuente de almacenamiento: files.storage.local (predeterminado) o files.storage.aws (S3). |
S3_REGION | Región del bucket. |
S3_BUCKET | Nombre del bucket. |
S3_STORAGE_PREFIX | Prefijo de ruta dentro del bucket (p. ej. passwork-logs). |
S3_STORAGE_KEY | Clave de acceso S3. |
S3_STORAGE_SECRET | Clave secreta S3. |
S3_ENDPOINT | Endpoint de almacenamiento. Omitir para AWS S3. |
S3_USE_PATH_STYLE_ENDPOINT | Direccionamiento de estilo de ruta: 0 — estilo de host virtual, 1 — estilo de ruta (use 1 para MinIO). |
Los registros se guardan en — {S3_STORAGE_PREFIX}logs/tasks/YYYY/MM/DD/task-{taskId}.log
Ejemplos
AWS
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=us-east-1
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_STORAGE_KEY=AKIAIOSFODNN7EXAMPLE
S3_STORAGE_SECRET=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
S3_USE_PATH_STYLE_ENDPOINT=0
MinIO
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=us-east-1
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://minio.example.com
S3_USE_PATH_STYLE_ENDPOINT=1
S3_STORAGE_KEY=webapp-logs
S3_STORAGE_SECRET=1GV6qaFpMYR11zs0VDEy
DigitalOcean Spaces
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=nyc3
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://nyc3.digitaloceanspaces.com
S3_USE_PATH_STYLE_ENDPOINT=0
S3_STORAGE_KEY=your-spaces-access-key
S3_STORAGE_SECRET=your-spaces-secret-key
Google Cloud Storage
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=us-east1
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://storage.googleapis.com
S3_USE_PATH_STYLE_ENDPOINT=0
S3_STORAGE_KEY=your-gcs-hmac-access-id
S3_STORAGE_SECRET=your-gcs-hmac-secret
Después de cambiar los parámetros, reinicie el servicio PHP-FPM o el contenedor Docker:
- DEB
- RPM
- Docker
- PowerShell
systemctl restart php8.3-fpm
systemctl restart php-fpm
docker restart passwork_php
Restart-Service -Name "W3SVC"