A mircoservice would validate pings notifying it of data to ingest into the central CAS. Users get permission to upload to a namespace then ping the workers to validate and move the file over.
Append only so no difference between dev and production.
bucket
+ root
| | SHAs...
+ users
\ + some_duder
\ | SHAs...
Needs credentials to bucket root receives url to user submitted resource + server metadata payload notifies server with metadata payload and exits if sha exists in root validates SHA copies to root optionally deletes from users/username/sha notifies server with metadata payload
Receives metadata payload + SHA from worker Creates DB entry referencing SHA and any metadata (creator, etc...)
Get namespaced credentials from server so they can upload directly to S3 Compute SHA locally and upload to S3 Ping worker queue when an upload is complete