init commit

This commit is contained in:
2025-06-05 09:17:47 -04:00
commit db8ec76921
53 changed files with 12126 additions and 0 deletions

121
config/routes/s3_api.yaml Normal file
View File

@@ -0,0 +1,121 @@
# List all buckets
s3_list_buckets:
path: /s3/
controller: App\Controller\S3ApiController::listBuckets
methods: [GET]
# Bucket operations
s3_create_bucket:
path: /s3/{bucket}
controller: App\Controller\S3ApiController::createBucket
methods: [PUT]
requirements:
bucket: '[a-z0-9\-\.]+'
s3_delete_bucket:
path: /s3/{bucket}
controller: App\Controller\S3ApiController::deleteBucket
methods: [DELETE]
requirements:
bucket: '[a-z0-9\-\.]+'
s3_head_bucket:
path: /s3/{bucket}
controller: App\Controller\S3ApiController::headBucket
methods: [HEAD]
requirements:
bucket: '[a-z0-9\-\.]+'
s3_list_objects:
path: /s3/{bucket}
controller: App\Controller\S3ApiController::listObjects
methods: [GET]
requirements:
bucket: '[a-z0-9\-\.]+'
# Object operations
s3_put_object:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::putObject
methods: [PUT]
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_get_object:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::getObject
methods: [GET]
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_head_object:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::headObject
methods: [HEAD]
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_delete_object:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::deleteObject
methods: [DELETE]
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
# Multipart upload operations
s3_initiate_multipart:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::initiateMultipartUpload
methods: [POST]
condition: "request.query.has('uploads')"
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_upload_part:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::uploadPart
methods: [PUT]
condition: "request.query.has('partNumber') and request.query.has('uploadId')"
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_complete_multipart:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::completeMultipartUpload
methods: [POST]
condition: "request.query.has('uploadId') and not request.query.has('uploads')"
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_abort_multipart:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::abortMultipartUpload
methods: [DELETE]
condition: "request.query.has('uploadId')"
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_list_parts:
path: /s3/{bucket}/{key}
controller: App\Controller\S3ApiController::listParts
methods: [GET]
condition: "request.query.has('uploadId')"
requirements:
bucket: '[a-z0-9\-\.]+'
key: '.+'
s3_list_multipart_uploads:
path: /s3/{bucket}
controller: App\Controller\S3ApiController::listMultipartUploads
methods: [GET]
condition: "request.query.has('uploads')"
requirements:
bucket: '[a-z0-9\-\.]+'