Cloudinary - Talk with cloudinary.com
0.15
This module lets you interface to http://cloudinary.com.
my $delay = Mojo::IOLoop->delay; my $cloudinary = Cloudinary->new(cloud_name => "a", api_key => "b", api_secret => "c"); $delay->begin; $cloudinary->upload({file => {file => $path_to_file}}, sub { my ($cloudinary, $res) = @_; # ... $delay->end; }, }); # let's you do multiple upload() in parallel # just call $delay->begin once pr upload() # and $delay->end in each callback given to upload() $delay->wait;
See Mojolicious::Plugin::Cloudinary.
As from 0.04 all methods support the short and long option, meaning the examples below work the same:
$self->url_for('billclinton.jpg' => { w => 50 }); $self->url_for('billclinton.jpg' => { width => 50 });
$cloudinary->url_for('billclinton.jpg', { type => 'facebook' }); $cloudinary->url_for('billclinton.jpg', { type => 'twitter_name', h => 70, w => 100 }); $cloudinary->url_for('18913373.jpg', { type => 'twitter_name' }); $cloudinary->url_for('my-uploaded-image.jpg', { h => 50, w => 50 }); $cloudinary->url_for('myrawid', { resource_type => 'raw' });
This module provides alias for the Cloudinary transformations:
a = angle b = background c = crop d = default_image e = effect f = fetch_format g = gravity h = height l = overlay p = prefix q = quality r = radius t = named_transformation w = width x = x y = y
Your cloud name from https://cloudinary.com/console
Your API key from https://cloudinary.com/console
Your API secret from https://cloudinary.com/console
Your private CDN url from https://cloudinary.com/console.
$self->upload( { file => $binary_str | $url, # required format => $str, # optional public_id => $str, # optional resource_type => $str, # image or raw. defaults to "image" tags => ['foo', 'bar'], # optional timestamp => $epoch, # time() }, sub { my ($cloudinary, $res) = @_ } );
Will upload a file to http://cloudinary.com using the parameters given "cloud_name", "api_key" and "api_secret". $res in the callback will be the json response from cloudinary:
$res
{ url => $str, secure_url => $str, public_id => $str, version => $str, width => $int, # only for images height => $int, # only for images }
$res on error can be either undef if there was an issue connecting/communicating with cloudinary or a an error data structure:
undef
{error => {message: $str}}
The file can be:
file
A hash
{ file => 'path/to/image' }
A Mojo::Upload object.
A Mojo::Asset object.
A URL
res in callbacks will be the JSON response from http://cloudinary.com as a hash ref. It may also be undef if something went wrong with the actual HTTP POST.
res
See also https://cloudinary.com/documentation/upload_images and http://cloudinary.com/documentation/upload_images#raw_uploads.
$self->destroy( { public_id => $public_id, resource_type => $str, # image or raw. defaults to "image" }, sub { my ($cloudinary, $res) = @_; } );
Will delete an image from cloudinary, identified by $public_id. The callback will be called when the image got deleted or if an error occur.
$public_id
On error, look for:
See also https://cloudinary.com/documentation/upload_images#deleting_images.
$url_obj = $self->url_for("$public_id.$format", \%args);
This method will return a public URL to the image at http://cloudinary.com. It will use "private_cdn" or the public CDN and "cloud_name" to construct the URL. The return value is a Mojo::URL object.
Example %args:
%args
{ h => 150, # height of image w => 100, # width of image resource_type => $str, # image or raw. defaults to "image" secure => $bool, # use private_cdn or public cdn type => $str, # upload, facebook. defaults to "upload" }
See also http://cloudinary.com/documentation/upload_images#accessing_uploaded_images and http://cloudinary.com/documentation/image_transformations.
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
Jan Henning Thorsen - jhthorsen@cpan.org
To install Cloudinary, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Cloudinary
CPAN shell
perl -MCPAN -e shell install Cloudinary
For more information on module installation, please visit the detailed CPAN module installation guide.