We basically need the existing service POST /externalFileHandle/s3 ported for Google Cloud. The existing S3 service is relatively simple:
Check that the StorageLocation object exists for the bucket
Verify that the user owns the storage location
Access the file to verify that it exists and Synapse can access it, optionally get metadata from the file.
Create the file handle
Changes are in in stack-293 (the fix version does not exist when I resolve this issue)
To validate, upload a file to a Google Cloud bucket, create a storage location for the bucket, and attempt to create a file handle for the uploaded file using POST /externalFileHandle/googleCloud
(If the docs aren't updated, this call is exactly like POST /externalFileHandle/s3, but create a GoogleCloudFileHandle instead.
Verified fixed 293.0.