Jan Henning Thorsen > Cloudinary-0.12 > Cloudinary

Download:
Cloudinary-0.12.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Source  

NAME ^

Cloudinary - Talk with cloudinary.com

VERSION ^

0.12

DESCRIPTION ^

This module lets you interface to http://cloudinary.com.

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 https://cloudinary.com/console

api_key

Your API key from https://cloudinary.com/console

api_secret

Your API secret from https://cloudinary.com/console

private_cdn

Your private CDN url from https://cloudinary.com/console.

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 http://cloudinary.com 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:

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.

See also https://cloudinary.com/documentation/upload_images and http://cloudinary.com/documentation/upload_images#raw_uploads.

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 https://cloudinary.com/documentation/upload_images#deleting_images.

url_for

    $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:

    {
        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 http://cloudinary.com/documentation/upload_images#accessing_uploaded_images and http://cloudinary.com/documentation/image_transformations.

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

syntax highlighting: