HTTP microservice written in PHP for handling files.
- Upload files (default and chunk based)
- Download files
- Upload (chunk combine) complete webhook
- API based access control
- Generate image thumbnails with Imagick
- Failed job list api endpoint
- Failed job webhook
- Failed job retry (manual or auto)
- PHP (>8.1)
- Nginx (>1.2)
- PostgreSQL (>14)
- RabbitMQ (>3)
docker-compose up -d
docker-compose exec php composer install
POST "/upload"
, See UploadForm.php for detailsPOST "/chunked-upload"
, See ChunkedUploadForm.php for detailsPUT "/chunked-upload-complete"
, See ChunkedUploadCompleteForm.php for detailsGET "/download/([a-zA-Z0-9-]+)"
GET "/image/([a-zA-Z0-9-]+)"
, See ImageForm.php for details
Build and push:
docker buildx build -t <your_registry>/php-file-service:<version> . --platform=linux/arm64,linux/amd64 --push
Linter
docker-compose exec php ./vendor/bin/php-cs-fixer fix --diff --dry-run --config .php-cs-fixer.php --verbose
- Special thanks to @dblaci for the technical support.