Wire S3-compatible upload/exists/delete using object_store crate. Fix generate_object_key to return Result instead of panicking. Add 4 unit tests with InMemory backend. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire S3-compatible upload/exists/delete using object_store crate. Fix generate_object_key to return Result instead of panicking. Add 4 unit tests with InMemory backend. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>