All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
user_project
option on storage, which enables theuserProject
option on the underlyinggoogle-cloud-storage
client, allowing to specify a project to bill for the request for requester-pays buckets (https://cloud.google.com/storage/docs/using-requester-pays)iam
option on storage, to use IAM instead of the credentials when signing URLs. This is useful if you are authenticating your GKE applications with Workload Identity, see this Google Cloud blog post for more information.
public
option on storage, which enabled thepublicRead
default ACL, as an easier way to create public objects
- Signed URLs were wrongly generated when
expires
was not provided - Fixed special character encoding in URLs (thanks @camiloforero)
- Encode filenames in URIs (#47 by @vanboom)
- Minimum Ruby version is 2.6
- Multi Factor authentication is now required when publishing on Rubygems
- Allow an ACL to be specicied for an object (#45 by @ianks)
- Ruby 3.0 keyword arguments fixes (#46 by @sho918)
- Allow credentials to be manually specified when creating the Storage (#35 by @ianks)
- Updated for Shrine 3.0. This is a breaking change. (#37 by @janko)
- When copying a file from an existing GCS object, the content type was not properly copied. This is a bug in the
google-cloud-storage
gem, a workaround has been added so it now works currently (issue #36)
clear!
now accepts a block for conditional deletion. If a block is provided, it will only delete the files for which the block evaluates totrue
(#31 by @hwo411)
presign
has been updated to use the new Shrine 2.11 API. This is a breaking change if you usepresign
, and bumps theshrine
dependency to>= 2.11
(#25 by @janko)- This gem now uses
Shrine.with_file
, introduced in Shrine 2.11 (#29 by @janko)
clear!
was potentially not deleting every file (#26 by @janko)
- Moved tests to HTTP.rb (#23 by @janko-m)
presign
now correctly returns the headers needed for thePUT
request (#23 by @janko-m)
- You can specify a project when creating a storage (#16 by @rosskevin)
- Authentication is now delegated to
google-cloud-ruby
, which enables credentials discovery #url
now supports presigning (url(expires: …)
), matching the S3 storage (#16 by @rosskevin)
- switched to
google-cloud-storage
gem (#16 by @rosskevin) - added a
test/create_test_environment.sh
script to setup a test environment automatically (#16 by @rosskevin) - use
skip_lookup: true
when instanciating a bucket object to avoid an API call. This reduces the number of API calls for most operations, making them faster. It also allows operating on buckets with a restricted Service Account that does not have access tostorage.buckets.get
but can access the files. (#21)
- removed support for
multi_delete
, as this feature has been deprecated in Shrine
- moved batching to
batch_delete
, so it is used formulti_delete
(#11 by @janko-m) - updated
google-api-client
to 0.13
- First released version
- Base functionality (create objects, delete, copy, ...)
- Support for presigned URLs
- Support for default ACLs
- Support for setting custom headers