NAME Cloudinary - Talk with cloudinary.com VERSION 0.1301 DESCRIPTION This module lets you interface to . SYNOPSIS Standalone my $delay = Mojo::IOLoop->delay; my $cloudinary = Cloudinary->new( cloud_name => '...', api_key => '...', api_secret => '...', ); $delay->begin; $cloudinary->upload({ file => { file => $path_to_file }, on_success => sub { # ... $delay->end; }, on_error => sub { # ... $delay->end; }, }); # let's you do multiple upload() in parallel # just call $delay->begin once pr upload() # and $delay->end in each on_xxx callback $delay->wait; With mojolicious See Mojolicious::Plugin::Cloudinary. Options 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 }); url_for() examples $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' }); Aliases 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', ATTRIBUTES cloud_name Your cloud name from api_key Your API key from api_secret Your API secret from private_cdn Your private CDN url from . METHODS upload $self->upload({ file => $binary_str|$url, # required timestamp => $epoch, # time() public_id => $str, # optional format => $str, # optional resource_type => $str, # image or raw. defaults to "image" tags => ['foo', 'bar'], # optional on_success => sub { my($res) = @_; # ... }, on_error => sub { my($res, $tx) = @_; # ... }, }); Will upload a file to using the parameters given "cloud_name", "api_key" and "api_secret". $res in "on_success" will be the json response from cloudinary: { url => $str, secure_url => $str, public_id => $str, version => $str, width => $int, # only for images height => $int, # only for images } $res for "on_error" on the other hand can be either "undef" if there was an issue connecting/communicating with cloudinary or a an error: { error => { message: $str }, } The "file" can be: * 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 as a hash ref. It may also be "undef" if something went wrong with the actual HTTP POST. See also and . destroy $self->destroy({ public_id => $public_id, resource_type => $str, # image or raw. defaults to "image" on_success => sub { # ... }, on_error => sub { my($res, $tx) = @_; # ... }, }); Will delete an image from cloudinary, identified by $public_id. "on_success" will be called when the image got deleted, while "on_error" is called if not: $res can be either "undef" if there was an issue connecting/communicating with cloudinary or a an error: { error => { message: $str }, } See also . url_for $url_obj = $self->url_for("$public_id.$format", \%args); This method will return a public URL to the image at . 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: { w => 100, # width of image h => 150, # height of image resource_type => $str, # image or raw. defaults to "image" type => $str, # upload, facebook. defaults to "upload" secure => $bool, # use private_cdn or public cdn } See also and . COPYRIGHT & LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR Jan Henning Thorsen - jhthorsen@cpan.org