Download the PHP package stetodd/s3-multipart-upload-bundle without Composer
On this page you can find all versions of the php package stetodd/s3-multipart-upload-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download stetodd/s3-multipart-upload-bundle
More information about stetodd/s3-multipart-upload-bundle
Files in stetodd/s3-multipart-upload-bundle
Package s3-multipart-upload-bundle
Short Description Direct-to-S3 multipart upload endpoints for Symfony (Uppy-compatible): create, sign parts, complete and abort via presigned URLs
License MIT
Informations about the package s3-multipart-upload-bundle
stetodd/s3-multipart-upload-bundle
Direct-to-S3 multipart upload endpoints for Symfony, compatible with Uppy's AwsS3 multipart flow: create an upload, presign each part, then complete or abort — all against any S3-compatible store (AWS, R2, minio).
Install
Register in config/bundles.php:
Configure targets in config/packages/stetodd_s3_multipart_upload.yaml. Each target maps a client-supplied targetType to an S3 client service, bucket and key prefix:
Import the routes with whatever prefix you like (config/routes/stetodd_s3_multipart_upload.yaml):
Endpoints
| Method | Path | Body / query | Response |
|---|---|---|---|
| OPTIONS | /create |
— | 204 |
| POST | /create |
{targetType, contentType, filename} |
{key, uploadId} |
| GET | /parts/sign |
?uploadId=&partNumber= |
{url} (presigned) |
| POST | /complete |
{uploadId, parts: [{PartNumber, ETag}]} |
{success: true}* |
| DELETE | /abort |
{uploadId} |
{} |
* listeners can replace any create/complete response — see below.
Application seams
The bundle deliberately persists nothing. Two integration points connect it to your domain:
1. Upload resolver (required for sign/complete/abort). Map an uploadId back to the object key and target you stored when the upload was created:
Unknown ids surface as 404s.
2. Lifecycle events. Subscribe to persist your upload record and run post-completion behaviour:
MultipartUploadCreated—descriptor(filename, uploadId, key, bucket, tag) +target; persist your record here.setResponse()overrides the default{key, uploadId}body.MultipartUploadCompleted—uploadId,key,target; mark your record complete, kick off processing, and optionallysetResponse()(e.g. return the created domain resource).MultipartUploadAborted—uploadId,key,target.
Storage services
Each configured target also exposes stetodd_s3_multipart_upload.storage.<name> (a MultipartStorageInterface) with presigned GET URLs (getTemporaryUrl), part listing and ranged reads (readRange) for use elsewhere in your app, resolvable by target string via TargetStorageLocator.
All versions of s3-multipart-upload-bundle with dependencies
aws/aws-sdk-php Version ^3.300
psr/container Version ^1.1|^2.0
psr/event-dispatcher Version ^1.0
symfony/config Version ^7.2|^8.0
symfony/dependency-injection Version ^7.2|^8.0
symfony/event-dispatcher Version ^7.2|^8.0
symfony/http-foundation Version ^7.2|^8.0
symfony/http-kernel Version ^7.2|^8.0
symfony/routing Version ^7.2|^8.0
symfony/security-core Version ^7.2|^8.0
symfony/serializer Version ^7.2|^8.0
symfony/validator Version ^7.2|^8.0