Skip to content
Simple client library for UpYun Restful API
Perl
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib/Net
t
Changes
MANIFEST
MANIFEST.SKIP
Makefile.PL
README

README

NAME
    Net::UpYun - Simple client library for UpYun Restful API.

SYNOPSIS
        # Yes, I love modern perl!
        use v5.12;
        use Net::UpYun;
    
        my $upyun = Net::UpYun->new(
            bucket_account => 'xxxxx',
            bucket_password => 'xxxx',
            bucket => 'bucket_name',
            # optional
            api_domain => 'http://v0.api.upyun.com',
        );

        # get bucket/folder/file usage
        my $usage = $upyun->usage;
        # or folder/file
        say $upyun->usage('/demo');

        # switch bucket
        $upyun->use_bucket('bucket_new');
        # use different account/password
        $upyun->use_bucket('bucket_new',$new_account,$new_password);

        # create dir
        my $ok = $upyun->mkdir('/demo2');

        # list file under the directory
        my $files = $upyun->list('/demo2');

        # rm dir
        my $ok = $upyun->rmdir('/demo2');

        # upload file
        my $ok = $upyun->put($file_key,$file_bytes);

        # get file content
        my $bytes = $upyun->get($file_key);

        # delete file
        $upyun->delete($file_key);

        # change api domaim
        $upyun->api_domain('http://v1.api.upyun.com');

DESCRIPTION
    This module provides very simple interfaces to UpYun Cloud servie,for
    more details about UpYun storage/CDN clound service, see
    <http://www.upyun.com/>.

    This module uses WWW::Curl and libcurl for best performance, I just test
    on Mac Lion and Linux, maybe works on Windows/Cygwin.

METHODS
  new()
    bucket
    bucket_account
    bucket_password
    api_domain

  usage($path)
        # whole bucket used storage
        $upyun->usage;
        # some dir/folder
        say $upyun->usage('/dir1');
        # some file size
        say $upyun->usage('/dir1/demo1.jpg');

    List bucket or path(folder or file) used space.

  use_bucket($new_bucket_name,$new_account?,$new_password?)
        # switch to new bucket,account/password same as current
        $upyun->use_bucket('bucket2');
        # switch to new bucket, also set new account/password
        $upyun->use_bucket('bucket3','new_user','new_password');

    Switch to another bucket, if omit new_account,new_password, use previous
    defined.

  mkdir($path)
        my $ok = $upyun->mkdir('/path1/path2');

    Build directory or path.

  rmdir($path)
        my $ok = $upyun->rmdir('/path1');

    Delete the directory, it must be empty.

  list($path)
        my $dir_content_str = $upyun->list('/');

    List files under the directory.

    TODO: $dir_content_str is plain text, need to parse.

  put($path,$bytes)
        # it will auto mkdir.
        my $ok = $upyun->put('/demo/1.txt','okokok');

    Upload content to the file, it will auto create directories.

    NOTE: According UpYun note, max directories deep level is limited to 10,
    be careful.

  get($path)
        say $upyun->get('/demo/1.txt');

    Get the file content.

  delete($path)
        my $ok = $upyun->delete('/demo/1.txt');

    Delete the file.

  reponse
        my $http_response = $upyun->response;

    Returns latest response,it's an instance of HTTP::Response.

  res_content
    Raw response content body.

  is_success
  is_error
    These methods indicate if the response was informational, successful, or
    an error. If the response code was 2xx code, is_success is true, else
    is_error is true.

  error_code
    The code is a 3 digit number that encode the overall outcome of the last
    HTTP response.

  error_message
    The message is a short human readable single line string that explains
    the last response code.

  do_request
    Internal, send signed request to server.

  sign
    Private.

TODOS
    Much jobs to do.

    *   handy client shell.

    *   copy/move file under same bucket or between different bucket.

    *   simple check file exists on remote ,no need to fetch its
        content,save bandwidth.

    *   display/compare files checksum(MD5) local and remote.

    *   streaming upload to save memory.

    *   useful utility, like tar/untar to/from upyun on fly.

    *   multi operation and performance requests in parallel.

    *   code clean and refactory.

AUTHOR
    Night Sailer(Pan Fan) <nightsailer{at}gmail_dot_com>

COPYRIGHT
    Copyright (C) Pan Fan(nightsailer)

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

Something went wrong with that request. Please try again.