GCP recommends using soft delete instead of object versioning, so this implementation attempts to-restore a soft deleted object first. If soft delete is not enabled (which may be common since it's a relatively new feature), then it attempts to restore a previously deleted version by coping it to the live location, similar to the S3FileIO implementation.
Inspired by the initial implementation in S3FileIO, this PR implements
SupportsRecoveryOperations
for GCSFileIO.GCP recommends using soft delete instead of object versioning, so this implementation attempts to-restore a soft deleted object first. If soft delete is not enabled (which may be common since it's a relatively new feature), then it attempts to restore a previously deleted version by coping it to the live location, similar to the S3FileIO implementation.