Skip to content
Google Cloud Storage for Shrine
Ruby Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/shrine/storage
test
.env.sample
.gitignore
CHANGELOG.md
CODE_OF_CONDUCT.md
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
shrine-google_cloud_storage.gemspec

README.md

Gem Version

Shrine::Storage::GoogleCloudStorage

Provides Google Cloud Storage (GCS) storage for Shrine.

Installation

gem "shrine-google_cloud_storage"

Authentication

The GCS plugin uses the google-cloud-storage gem. Please refer to its documentation for setting up authentication.

Usage

require "shrine/storage/google_cloud_storage"

Shrine.storages = {
  cache: Shrine::Storage::GoogleCloudStorage.new(bucket: "cache"),
  store: Shrine::Storage::GoogleCloudStorage.new(bucket: "store"),
}

You can set a predefined ACL on created objects, as well as custom headers using the object_options parameter:

Shrine::Storage::GoogleCloudStorage.new(
  bucket: "store",
  default_acl: 'publicRead',
  object_options: {
    cache_control: 'public, max-age: 7200'
  },
)

Contributing

Test setup

Option 1 - use the script

Review the script test/create_test_environment.sh. It will:

  • create a Google Cloud project
  • associate it with your billing account
  • create a service account
  • add the roles/storage.admin iam policy
  • download the json credentials
  • create a test bucket
  • add the needed variables to your .env file

To run, it assumes you have already run gcloud auth login. It also needs a .env file in the project root containing the project name and the billing account to use:

cp .env.sample .env
# Edit .env to fill in your project and billing accounts
./test/create_test_environment.sh

Option 2 - manual setup

Create your own bucket and provide variables that allow for project and credential lookup. For example:

GCS_BUCKET=shrine-gcs-test-my-project
GOOGLE_CLOUD_PROJECT=my-project
GOOGLE_CLOUD_KEYFILE=/Users/user/.gcp/my-project/shrine-gcs-test.json

Warning: all content of the bucket is cleared between tests, create a new one only for this usage!

Running tests

After setting up your bucket, run the tests:

$ bundle exec rake test

For additional debug, add the following to your .env file:

GCS_DEBUG=true

License

MIT

You can’t perform that action at this time.