Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Shrine::Storage::Imgix

Provides Imgix integration for Shrine.

Imgix is a service for processing images on the fly, and works with files stored on external services such as AWS S3 or Google Cloud Storage.

Installation

gem "shrine-imgix"

Configuring

Load the imgix plugin with Imgix client settings:

Shrine.plugin :imgix, client: {
  host:             "your-subdomain.imgix.net",
  secure_url_token: "abc123",
}

You can also pass in an Imgix::Client object directly:

require "imgix"

imgix_client = Imgix::Client.new(
  host:             "your-subdomain.imgix.net",
  secure_url_token: "abc123",
)

Shrine.plugin :imgix, client: imgix_client

Path prefix

If you've configured a "Path Prefix" on your Imgix source, and you also have :prefix set on your Shrine storage, you'll need tell the imgix plugin to exclude the storage prefix from generated URLs:

Shrine.plugin :imgix, client: ..., prefix: false

Usage

You can generate an Imgix URL for a Shrine::UploadedFile object by calling #imgix_url:

photo.image.imgix_url(w: 150, h: 200, fit: "crop")
#=> "http://my-subdomain.imgix.net/943kdfs0gkfg.jpg?w=150&h=200&fit=crop"

See the Imgix docs for all available URL options.

Rails

If you're using imgix-rails and want to use the ix_* helpers, you can use #imgix_id to retrieve the Imgix path:

<%= ix_image_tag photo.image.imgix_id, url_params: { w: 300, h: 500, fit: "crop" } %>

Purging

If you want images to be automatically purged from Imgix on deletion, you can set :purge to true:

Shrine.plugin :imgix, client: ..., purge: true

You can also purge manually with Shrine::UploadedFile#imgix_purge:

photo.image.imgix_purge

Note that purging requires passing the :api_key option to your Imgix client.

Development

You can run the test suite with:

$ bundle exec rake test

License

MIT

You can’t perform that action at this time.