fix(deps): update dependency com.google.cloud:google-cloud-storage to v2.14.0 #8692
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.13.1
->2.14.0
Release Notes
googleapis/java-storage
v2.14.0
Google Cloud Storage gRPC API Preview
The first release of
google-cloud-storage
with support for a subset of the Google Cloud Storage gRPC API which is in private preview. The most common operations have all been implemented and are available for experimentation.Given not all public api surface of
google-cloud-storage
classes are supported for gRPC a new annotation@TransportCompatibility
has been added to various classes, methods and fields/enum values to signal where that thing can be expected to work. As we implement more of the operations these annotations will be updated.All new gRPC related APIs are annotated with
@BetaApi
to denote they are in preview and the possibility of breaking change is present. At this time, opting to use any of the gRPC transport mode means you are okay with the possibility of a breaking change happening. When the APIs are out of preview, we will remove the@BetaApi
annotation to signal they are now considered stable and will not break outside a major version.NOTICE: Using the gRPC transport is exclusive. Any operations which have not yet been implemented for gRPC will result in a runtime error. For those operations which are not yet implemented, please continue to use the existing HTTP transport.
Special thanks (in alphabetical order) to @BenWhitehead, @frankyn, @jesselovelace and @sydney-munro for their hard work on this effort.
Notable Improvements
For all gRPC media related operations (upload/download) we are now more resource courteous then the corresponding HTTP counterpart. Buffers are fixed to their specified size (can't arbitrarily grow without bounds), are allocated lazily and only if necessary.
Preview support for Accessing GCS via gRPC
GOOGLE_CLOUD_ENABLE_DIRECT_PATH_XDS=true
, then run your program.StorageOptions
mimic the following:StorageOptions.grpc()
.setAttemptDirectPath(true)
.build()
https://storage.googleapis.com:443
will be transformed to the applicablegoogle-c2p-experimental:///storage.googleapis.com
Support for
java.time
types on model classesjava.time.OffsetDateTime
, while durations are represented withjava.time.Duration
Long
centric methods are still present, but have been deprecated in favor of their correspondingjava.time
variantjava.time
and thejava.time
variant methods will be deprecatedcom.google.cloud.storage.Storage
now extendsjava.lang.AutoClosable
thereby allowing it to be used in a try-with-resource block.Storage#close()
when complete so it can clean up the gRPC middleware and resources.Storage#close()
will gracefully no-op, allowing for the same style of use regardless of transport.When downloading an object via gRPC idle stream detection is now present which will restart a stream if it is determined to be idle and has remaining retry budget
Update equals()/hashCode() methods to follow the expected contract
The new gRPC transport based implementation continues to provide idempotency aware automatic retries the same as HTTP
Expanded test suite which should bring improved stability and reliability to both HTTP and gRPC transport implementations
New
com.google.cloud:google-cloud-storage-bom
maven bom available to use for coordinated dependency version resolution for multiple storage artifactsNot yet implemented
All ACL specific operations.
All Notification related operations
ReadChannel#capture()
,RestorableState<ReadChannel>#restore()
,WriteChannel#capture()
,RestorableState<WriteChannel>#restore()
,CopyWriter#capture()
andRestorableState<CopyWriter>#capture()
are not yet implemented.Batch and "bulk" operations which depend on batch
Storage#batch()
is only supported for HTTP transport.Storage#batch()
are currently only supported for HTTP transportcom.google.cloud.storage.Storage#get(com.google.cloud.storage.BlobId...)
com.google.cloud.storage.Storage#get(java.lang.Iterable<com.google.cloud.storage.BlobId>)
com.google.cloud.storage.Storage#update(com.google.cloud.storage.BlobInfo...)
com.google.cloud.storage.Storage#update(java.lang.Iterable<com.google.cloud.storage.BlobInfo>)
com.google.cloud.storage.Storage#delete(com.google.cloud.storage.BlobId...)
com.google.cloud.storage.Storage#delete(java.lang.Iterable<com.google.cloud.storage.BlobId>)
One-Time Inconveniences
All classes under
com.google.cloud.storage
which areSerializable
have newserialVersionUIDs
and are incompatible with any previous version.google-cloud-storage
in both locations.The cause chains of some Exceptions have changed.
StorageException
causes will use the correspondingcom.google.api.gax.rpc.ApiException
for the failure type instead of the HTTPcom.google.api.client.googleapis.json.GoogleJsonError
StorageException
preserving the integrity ofStorageException#getCode()
Not Supported
Given the nature of the gRPC transport a few things are explicitly not supported when using gRPC, and require HTTP transport. Attempting to use any of the following methods will result in a runtime error stating they are not supported for gRPC transport.
Storage#writer(URL)
does not work for gRPC. gRPC does not provide a means of exchanging an HTTP url for a resumable session idStorage#signUrl
is not supported for gRPC transport. Signed URLs explicitly generate HTTP urls and are only supported for the HTTP transport based implementation.Storage#generateSignedPostPolicyV4
is not supported for gRPC transport. Signed URLs explicitly generate HTTP urls and are only supported for the HTTP transport based implementation.Known Issues
Features
Bug Fixes
Dependencies
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.