- storage: add support for OLM Prefix/Suffix (#5929) (ec21d10)
- storage: support AbortIncompleteMultipartUpload LifecycleAction (#5812) (fdec929), refs #5795
- storage: allow for Age *int64 type and int64 type (#6230) (cc7acb8)
- storage: allow specifying includeTrailingDelimiter (#5617) (a34503b)
- storage: set versionClient to module version (55f0d92)
- storage: respect STORAGE_EMULATOR_HOST in signedURL (#5673) (1c249ae)
- storage/internal: Update definition of RewriteObjectRequest to bring to parity with JSON API support (#5447) (7d175ef)
- storage: add fully configurable and idempotency-aware retry strategy (#5384, #5185, #5170, #5223, #5221, #5193, #5159, #5165, #5166, #5210, #5172, #5314)
- This release contains changes to fully align this library's retry strategy with best practices as described in the Cloud Storage docs.
- The library will now retry only idempotent operations by default. This means that for certain operations, including object upload, compose, rewrite, update, and delete, requests will not be retried by default unless idempotency conditions for the request have been met.
- The library now has methods to configure aspects of retry policy for API calls, including which errors are retried, the timing of the exponential backoff, and how idempotency is taken into account.
- If you wish to re-enable retries for a non-idempotent request, use the RetryAlways policy.
- For full details on how to configure retries, see the package docs and the Cloud Storage docs
- storage: GenerateSignedPostPolicyV4 can use existing creds to authenticate (#5105) (46489f4)
- storage: post policy can be signed with a fn that takes raw bytes (#5079) (25d1278)
- storage: add rpo (turbo replication) support (#5003) (3bd5995)
- storage: don't assume auth from a client option (#4982) (e17334d)
- storage: returned wrapped error for timeouts (#4802) (0e102a3), refs #4197
- storage: SignedUrl can use existing creds to authenticate (#4604) (b824c89)
- storage: update PAP to use inherited instead of unspecified (#4909) (dac26b1)
- storage: add projectNumber field to bucketAttrs. (#4805) (07343af)
- storage/internal: Update encryption_key fields to “bytes” type. fix: Improve date/times and field name clarity in lifecycle conditions. (a52baa4)
- storage: accept emulator env var without scheme (#4616) (5f8cbb9)
- storage: preserve supplied endpoint's scheme (#4609) (ee2756f)
- storage: remove unnecessary variable (#4608) (27fc784)
- storage: retry LockRetentionPolicy (#4439) (09879ea), refs #4437
- storage: revise Reader to send XML preconditions (#4479) (e36b29a), refs #4470
- Updates to various dependencies.
- storage: add missing StorageClass in BucketAttrsToUpdate (#3038) (2fa1b72)
- storage: add projection parameter for BucketHandle.Objects() (#3549) (9b9c3dc)
- V4 signed URL fixes:
- Fix encoding of spaces in query parameters.
- Add fields that were missing from PostPolicyV4 policy conditions.
- Fix Query to correctly list prefixes as well as objects when SetAttrSelection is used.
- Add support for CustomTime and NoncurrentTime object lifecycle management features.
- Bump dependency on google.golang.org/api to capture changes to retry logic which will make retries on writes more resilient.
- Improve documentation for Writer.ChunkSize.
- Fix a bug in lifecycle to allow callers to clear lifecycle rules on a bucket.
- Add retry for transient network errors on most operations (with the exception of writes).
- Bump dependency for google.golang.org/api to capture a change in the default HTTP transport which will improve performance for reads under heavy load.
- Add CRC32C checksum validation option to Composer.
- Add support for V4 signed post policies.
- V4 signed URL support:
- Add support for bucket-bound domains and virtual hosted style URLs.
- Add support for query parameters in the signature.
- Fix text encoding to align with standards.
- Add the object name to query parameters for write calls.
- Fix retry behavior when reading files with Content-Encoding gzip.
- Fix response header in reader.
- New code examples:
- Error handling for
- Existence checks for buckets and objects.
- Updated option handling:
- Don't drop custom scopes (#1756)
- Don't drop port in provided endpoint (#1737)
- Honor WithEndpoint client option for reads as well as writes.
- Add archive storage class to docs.
- Make fixes to storage benchwrapper.
- When listing objects in a bucket, allow callers to specify which attributes are queried. This allows for performance optimization.
storage.googleapis.com/storage/v1 by default for GCS requests instead of
- Fixed a bug where UniformBucketLevelAccess and BucketPolicyOnly were not being sent in all cases.
- Fix memory leak in BucketIterator and ObjectIterator.
- Send BucketPolicyOnly even when it's disabled.
- Performance improvements for ObjectIterator and BucketIterator.
- Fix Bucket.ObjectIterator size calculation checks.
- Added HMACKeyOptions to all the methods which allows for options such as UserProject to be set per invocation and optionally be used.
This is the first tag to carve out storage as its own module. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.