What is the use case or problem this feature would solve?
Ability to upload files to volumes.
Additional context
Upload built on S3 presigned PUT. Not filesystem-capable.
Flow (BucketExplorer.vue:683-693):
- Frontend ask backend for presigned URL → get_upload_presigned_request (storage_controller.rb:430)
- axios PUT file direct to object store (versitygw) via that URL
get_upload_presigned_request hard-requires params.require(:bucket) and calls bucket.presigned_request. Presigned URL is a S3 concept only.
Volumes = host filesystem mounts (OPENC3_*_VOLUME env, storage_controller.rb:173). No S3. No presigned URL possible. Nothing to PUT to.
Volume upload need new backend endpoint: receive raw/multipart body, sanitize_path, write to /{volume}/{path} on filesystem (mirror download's volume branch), plus authorization('system_set') + RBAC.
Screenshots
No response
What is the use case or problem this feature would solve?
Ability to upload files to volumes.
Additional context
Upload built on S3 presigned PUT. Not filesystem-capable.
Flow (BucketExplorer.vue:683-693):
get_upload_presigned_request hard-requires params.require(:bucket) and calls bucket.presigned_request. Presigned URL is a S3 concept only.
Volumes = host filesystem mounts (OPENC3_*_VOLUME env, storage_controller.rb:173). No S3. No presigned URL possible. Nothing to PUT to.
Volume upload need new backend endpoint: receive raw/multipart body, sanitize_path, write to /{volume}/{path} on filesystem (mirror download's volume branch), plus authorization('system_set') + RBAC.
Screenshots
No response