Project

pilbox

0.0
Low commit activity in last 3 years
No release in over a year
An URL-signing utility for Pilbox, the image resizing service.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 12.3, >= 12.3.3
~> 3.9
>= 2.2.10
 Project Readme

Pilbox Ruby Gem

This is a Ruby utility for generating request URLs for Pilbox, the image resizing service. This library was made for my personal use and is not affiliated with the Pilbox project.

Installation

Add this line to your application's Gemfile:

gem "pilbox"

And then execute:

$ bundle

Or install it yourself as:

$ gem install pilbox

Usage

It's quite straightfoward: simply call Pilbox.thumb_uri(base_uri, params), where the base_uri is a string or URI pointing to the Pilbox server endpoint, and params contains the query params to be passed to the Pilbox request.

Basic example, generating a thumbnail with a width of 50:

Pilbox.thumb_uri("https://mypilboxserver.example.com", "url" => "https://example.org/funnykittens.jpg", "w" => 50)

You will get back a URI suitable for generating a thumbnail on Pilbox. For flexibility, the result will be a URI object, which you can easily turn into a string by calling #to_s on it.

You should always pass at least the "url" param. If you pass a client_key param to Pilbox#thumb_uri, a secure signature (compatible with Pilbox) will be generated and added to the resulting URI. The client_key param won't be added to the HTTP request, it will remain secret. All other params will pass through to Pilbox. For more information on available params, refer to the documentation on the Pilbox project.

The following is a more complete example, which will return a signed URI ready to send as a secure Pilbox request:

base_uri = ENV["PILBOX_HOST"] # e.g. https://mypilboxserver.example.com
thumb_params = {
  url: "http://www.example.org/happypanda.png",
  op: "rotate,resize",
  w: 150,
  h: 150,
  deg: "auto",
  client_name: ENV["PILBOX_CLIENY_NAME"],
  client_key: ENV["PILBOX_CLIENT_KEY"]
}
puts Pilbox.thumb_uri(base_uri, thumb_params).to_s

If you have an existing URI that already includes Pilbox parameters, and you just want to add the proper signature, you can do that too:

unsigned_url = "http://mypilboxserver.example.org?url=http%3A%2F%2Fwww.example.com%2Fimage.jpg&w=250&h=80"
signed_url = Pilbox.thumb_uri(unsigned_url, client_name: "...", client_key: "...").to_s

Care has been taken to make this utility as simple to use as possible. If it behaves unexpectedly for you, please report it on the issue tracker.

Author

Justin Workman

Happy hacking!