Release History

1.31.1 / 2021-05-19

Documentation

  • Update IAMCredentialsService#sign_service_account_blob examples

1.31.0 / 2021-03-10

Features

  • Drop support for Ruby 2.4 and add support for Ruby 3.0

1.30.0 / 2021-01-13

Features

  • Replace google-api-client with specific client gems
    • Remove google-api-client
    • Add google-apis-iamcredentials_v1
    • Add google-apis-storage_v1

Documentation

  • Update Bucket#generate_signed_post_policy_v4 documentation

1.29.2 / 2020-12-14

Bug Fixes

  • Fix support for #generate_signed_post_policy_v4 conditions

1.29.1 / 2020-10-05

Bug Fixes

  • Fix encoding of space characters in file names in signed_url v4

Documentation

  • Update Bucket#default_kms_key= docs
    • Demonstrate deleting the Cloud KMS encryption key
  • Update customer-supplied encryption key docs and examples (#7851)

1.29.0 / 2020-09-22

Features

  • quota_project can be set via library configuration (#7656)

Bug Fixes

  • Fix encoding of space characters in #signed_url version: :v4
    • Fix encoding of space characters to use percent encoding (%20) instead of plus sign (+).

Documentation

  • Add custom time to file metadata sample

1.28.0 / 2020-08-26

  • Add Object Lifecycle Management fields
    • Add custom_time_before to Lifecycle::Rule
    • Add days_since_custom_time to Lifecycle::Rule
    • Add days_since_noncurrent_time to Lifecycle::Rule
    • Add noncurrent_time_before to Lifecycle::Rule
    • Add File#custom_time and #custom_time=

1.27.0 / 2020-07-29

Features

  • Add support for signing URLs with IAMCredentials SignBlob API
    • Add signer parameter accepting Procs to the following methods:
    • Project#signed_url
    • Bucket#generate_signed_post_policy_v4
    • Bucket#post_object
    • Bucket#signed_url
    • File#signed_url
    • Update signer aliases signing_key and private_key to similarly support Procs

Documentation

  • Update documentation of SignedUrlUnavailable

1.26.2 / 2020-05-28

Documentation

  • Fix a few broken links

1.26.1 / 2020-05-06

Bug Fixes

  • Add missing bucket condition in SignerV4#post_object
  • Ensure bucket is not returned in PostObject fields

1.26.0 / 2020-04-06

Features

  • Update V4 Signature support in Project#signed_url, Bucket#signed_url and File#signed_url
    • Add scheme, virtual_hosted_style and bucket_bound_hostname to #signed_url methods
    • Add support for V4 query param encoding and ordering
    • Convert tabs in V4 to single whitespace character
    • Set payload in V4 to X-Goog-Content-SHA256 if present
    • Fix method param default value GET for #signed_url
  • Add support for V4 Signature POST Policies
    • Add Bucket#generate_signed_post_policy_v4

Bug Fixes

  • Address keyword argument warnings in Ruby 2.7 and later

1.25.1 / 2020-01-06

Documentation

  • Add ARCHIVE storage class

1.25.0 / 2019-12-12

Features

  • Add IAM Conditions support to Policy

1.24.0 / 2019-11-12

Features

  • Add force_copy_metadata to File#copy and #rewrite

Bug Fixes

  • Update #post_object to support special variable ${filename}

1.23.0 / 2019-11-05

Features

  • Add support for Bucket#uniform_bucket_level_access
    • Deprecate Bucket#policy_only=, #policy_only?, and #policy_only_locked_at, which are now aliases for the uniform_bucket_level_access methods.

1.22.0 / 2019-10-28

  • Now requires Ruby 2.4 or later.
  • This release uses the updated default endpoint for Cloud Storage.

1.21.1 / 2019-09-30

Documentation

  • update storage class examples in docs and tests
    • Replace MULTI_REGIONAL and REGIONAL with STANDARD and NEARLINE.

1.21.0 / 2019-08-16

Features

  • Support overriding of service endpoint
  • Update documentation

Bug Fixes

  • Fix Bucket Policy Only service bug temporarily
    • Set UniformBucketLevelAccess to same value as BucketPolicyOnly

1.20.0 / 2019-08-08

  • Add HmacKey
    • Add Project#create_hmac_key, Project#hmac_key, and Project#hmac_keys.
  • Update documentation listings of current and legacy storage classes.
  • Fix File#download to use generation from current File object.

1.19.0 / 2019-07-11

  • Add Bucket#location_type
    • Remove :multi_regional and :regional from storage_class docs

1.18.2 / 2019-05-21

  • Declare explicit dependency on mime-types

1.18.1 / 2019-04-29

  • Update Storage Bucket Policy Only documentation.

1.18.0 / 2019-04-09

  • Add support for V4 signed URLs.
    • Add version param to #signed_url.
  • Fix file path encoding for V2 signed URLs.
    • Change CGI encoding to URI (percent) encoding to fix URLs containing spaces in file path.
  • Fix documentation typo.

1.17.0 / 2019-02-07

1.16.0 / 2019-02-01

  • Make use of Credentials#project_id
    • Use Credentials#project_id If a project_id is not provided, use the value on the Credentials object. This value was added in googleauth 0.7.0.
    • Loosen googleauth dependency Allow for new releases up to 0.10. The googleauth devs have committed to maintaining the current API and will not make backwards compatible changes before 0.10.

1.15.0 / 2018-10-03

  • Add Bucket retention policy
    • Add retention_policy fields and default_event_based_hold to Bucket.
    • Add retention_policy and hold fields to File.
    • Add Bucket#lock_retention_policy!
    • Add Bucket#metageneration.
    • Add Bucket#retention_policy_locked?
    • Add File#(set|release)_temporary_hold!
    • Add File#(set|release)_event_based_hold!

1.14.2 / 2018-09-20

  • Update documentation.
    • Change documentation URL to googleapis GitHub org.
  • Fix circular require warning.

1.14.1 / 2018-09-12

  • Add missing documentation files to package.

1.14.0 / 2018-09-10

  • Add Object Lifecycle Management:
    • Add Bucket#lifecycle.
    • Add Bucket::Lifecycle and Bucket::Lifecycle::Rule.
  • Update documentation.

1.13.1 / 2018-08-21

  • Update documentation.

1.13.0 / 2018-06-22

  • Update Policy, protect from role duplication.
  • Updated dependencies.

1.12.0 / 2018-05-09

  • Support Cloud KMS keys / Customer-managed encryption keys (CMEK).

1.11.0 / 2018-05-01

  • Support partial Storage::File downloads. (georgeclaghorn)
  • Add File#rewrite.
    • Similar to File#copy, except for being able to specify both source and destination encryption keys.
    • Refactor both File#copy and File#rotate to call File#rewrite.
  • Update documentation for File-like IO parameters. The underlying libraries call #size on the argument, which is not present on IO, but is present on File and StringIO.

1.10.0 / 2018-02-27

  • Support Shared Configuration.
  • Fix verification for gzipped files.
    • Add skip_decompress to File#download
    • Update documentation and examples for gzip-encoded files.
  • Fix issue with IAM Policy not refreshing properly.
  • Update Google API Client dependency.
  • Update authentication documentation

1.9.0 / 2017-11-20

  • Add Google::Cloud::Storage.anonymous to support public data access.

1.8.0 / 2017-11-14

  • Add Google::Cloud::Storage::Credentials class.
  • Rename constructor arguments to project_id and credentials. (The previous arguments project and keyfile are still supported.)
  • Document Google::Auth::Credentials as credentials value.
  • Updated google-api-client, googleauth dependencies.

1.7.1 / 2017-10-24

  • Fix bug in Bucket#create_file, Bucket#compose, File#copy and File#rotate in which user_project was not set on returned File object.
  • Fix bug in Bucket::Acl#add_reader and Bucket::Acl#add_owner in which user_project was not passed in the API request.

1.7.0 / 2017-10-18

  • Add Bucket#compose.
  • Update documentation.

1.6.0 / 2017-09-28

  • Add user_project option to Project#buckets and Project#create_bucket.
  • Upgrade to Google API Client 0.14.2.
  • Update documentation.

1.5.0 / 2017-09-26

  • Add Pub/Sub notification subscriptions.
  • Update #signed_url to support symbols (dimroc).

1.4.0 / 2017-08-02

  • Add skip_lookup option for retrieving Bucket and File objects without accessing the Storage API
    • Add Bucket#exists? method
    • Add File#exists? method
  • Add File#generations method
    • Add generation argument to File#delete
    • Add generation argument to File#reload!
  • Add Bucket#storage_class= method
  • Fix for when the user_project value set on a Bucket was not being properly set on all File objects returned by Bucket.
  • Fix to use user_project value when reloading a Bucket.

1.3.0 / 2017-07-11

  • Add query parameter to #signed_url methods (georgeclaghorn).

1.2.0 / 2017-06-27

  • Add Requester Pays support.
  • Upgrade dependency on Google API Client.

1.1.0 / 2017-06-01

  • Add Bucket#labels.
  • Update gem spec homepage links.
  • Remove memoization of Policy.
  • Deprecate force parameter in Bucket#policy. (Will be removed in a future version.)
  • Deprecate Policy#deep_dup. (Will be removed in a future version.)

1.0.1 / 2017-04-10

  • Add Bucket IAM support

1.0.0 / 2017-04-05

  • Release 1.0
  • Improvements to File copy for large files
  • Allow file attributes to be changed during copy
  • Upgrade dependency on Google API Client

0.25.0 / 2017-03-31

  • Allow upload and download of in-memory IO objects
  • Added signed_url at top-level object, without creating a bucket or file object
  • Updated documentation

0.24.0 / 2017-03-03

  • Dependency on Google API Client has been updated to 0.10.x.

0.23.2 / 2017-02-21

  • Allow setting a File's storage_class on file creation
  • Allow updating an existing File's storage_class
  • Add File#rotate to rotate encryption keys
  • Add PostObject and Bucket#post_object for uploading via HTML forms

0.23.1 / 2016-12-12

  • Support Google extension headers on signed URLs (calavera)

0.23.0 / 2016-12-8

  • Remove encryption_key_sha256 method parameter, hash will be calculated using encryption_key
  • Many documentation improvements

0.21.0 / 2016-10-20

  • New service constructor Google::Cloud::Storage.new
  • Bucket#signed_url added to create URLs without a File object

0.20.2 / 2016-09-30

  • Fix issue with signed_url and file names with spaces (gsbucks)

0.20.1 / 2016-09-02

  • Fix for timeout on uploads.

0.20.0 / 2016-08-26

This gem contains the Google Cloud Storage service implementation for the google-cloud gem. The google-cloud gem replaces the old gcloud gem. Legacy code can continue to use the gcloud gem.

  • Namespace is now Google::Cloud
  • The google-cloud gem is now an umbrella package for individual gems