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

View File

@@ -0,0 +1,66 @@
# Console API Routes
console_api_credentials:
path: /api/credentials
controller: App\Controller\ConsoleApiController::credentials
methods: [GET, POST]
console_api_credential_detail:
path: /api/credentials/{id}
controller: App\Controller\ConsoleApiController::credentialDetail
methods: [GET, PUT, DELETE]
requirements:
id: '\d+'
console_api_buckets:
path: /api/buckets
controller: App\Controller\ConsoleApiController::buckets
methods: [GET, POST]
console_api_bucket_detail:
path: /api/buckets/{name}
controller: App\Controller\ConsoleApiController::bucketDetail
methods: [GET, DELETE]
requirements:
name: '[a-z0-9\-\.]+'
console_api_objects:
path: /api/buckets/{bucketName}/objects
controller: App\Controller\ConsoleApiController::objects
methods: [GET, POST, DELETE]
requirements:
bucketName: '[a-z0-9\-\.]+'
console_api_object_detail:
path: /api/buckets/{bucketName}/objects/{objectKey}
controller: App\Controller\ConsoleApiController::objectDetail
methods: [GET, DELETE]
requirements:
bucketName: '[a-z0-9\-\.]+'
objectKey: '.+'
console_api_multipart_uploads:
path: /api/buckets/{bucketName}/multipart-uploads
controller: App\Controller\ConsoleApiController::multipartUploads
methods: [GET]
requirements:
bucketName: '[a-z0-9\-\.]+'
console_api_presigned_urls:
path: /api/presigned-urls
controller: App\Controller\ConsoleApiController::presignedUrls
methods: [GET, POST]
console_api_stats:
path: /api/stats
controller: App\Controller\ConsoleApiController::stats
methods: [GET]
# Console Frontend Route
console_frontend:
path: /console/{route}
controller: App\Controller\ConsoleController::index
methods: [GET]
requirements:
route: '.*'
defaults:
route: ''

4
config/routes/docs.yaml Normal file
View File

@@ -0,0 +1,4 @@
docs_show:
path: /docs
controller: App\Controller\DocsController::show
methods: [GET]

View File

@@ -0,0 +1,4 @@
when@dev:
_errors:
resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
prefix: /_error

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\-\.]+'