WebService::CloudPT - Perl interface to CloudPT API
use WebService::CloudPT; my $cloudpt = WebService::CloudPT->new({ key => '...', # App Key secret => '...' # App Secret }); # get access token if (!$access_token or !$access_secret) { my $url = $cloudpt->login($url_callback) or die $cloudpt->error; warn "Please Access URL and press Enter: $url"; my $verifier = <STDIN>; chomp $verifier; $cloudpt->auth({'verifier' = $verifier ]) or die $cloudt->error; warn "access_token: " . $cloudpt->access_token; warn "access_secret: " . $cloudpt->access_secret; } else { $cloudpt->access_token($access_token); $cloudpt->access_secret($access_secret); } my $info = $cloudpt->account_info or die $cloudpt->error; # download # https://cloudpt.pt/documentation#files my $fh_get = IO::File->new('some file', '>'); $cloudpt->files('make_test_folder/test.txt', $fh_get) or die $cloudpt->error; $fh_get->close; # upload # https://cloudpt.pt/documentation#files my $fh_put = IO::File->new('some file'); $cloudpt->files_put('make_test_folder/test.txt', $fh_put) or die $cloudpt->error; $fh_put->close; # filelist(metadata) # https://cloudpt.pt/documentation#metadata my $data = $cloudpt->metadata('folder_a');
WebService::CloudPT is Perl interface to CloudPT API https://cloudpt.pt
- Support CloudPT v1 REST API
- Support Furl (Fast!!!)
- Streaming IO (Low Memory)
- Default URI Escape (The specified path is utf8 decoded string)
my $callback_url = '...'; # optional my $url = $cloudpt->login($callback_url) or die $cloudpt->error; warn "Please Access URL and press Enter: $url";
$cloudpt->auth or die $cloudpt->error; warn "access_token: " . $cloudpt->access_token; warn "access_secret: " . $cloudpt->access_secret;
# Access Type is App folder # Your app only needs access to a single folder within the user's CloudPT $cloudpt->root('sandbox'); # Access Type is Full CloudPT (default) # Your app needs access to the user's entire CloudPT $cloudpt->root('cloudpt');
my $info = $cloudpt->account_info or die $cloudpt->error;
https://cloudpt.pt/documentation#accountinfo
my $fh_get = IO::File->new('some file', '>'); $cloudpt->files('folder/file.txt', $fh_get) or die $cloudpt->error; $fh_get->close;
https://cloudpt.pt/documentation#files
my $fh_put = IO::File->new('some file'); $cloudpt->files_put('folder/test.txt', $fh_put) or die $cloudpt->error; $fh_put->close; # To overwrite a file, you need to specifie Parent Rev $cloudpt->files_put('folder/test.txt', $fh_put, { overwrite => 1, parent_rev => ... }) or die $cloudpt->error; # conflict prevention
# from_path $cloudpt->copy('folder/test.txt', 'folder/test_copy.txt') or die $cloudpt->error; # from_copy_ref my $copy_ref = $cloudpt->copy_ref('folder/test.txt') or die $cloudpt->error; $cloudpt->copy($copy_ref, 'folder/test_copy.txt') or die $cloudpt->error;
https://cloudpt.pt/documentation#copy
$cloudpt->move('folder/test.txt', 'folder/test_move.txt') or die $cloudpt->error;
https://cloudpt.pt/documentation#move
# folder delete $cloudpt->delete('folder') or die $cloudpt->error; # file delete $cloudpt->delete('folder/test.txt') or die $cloudpt->error;
https://cloudpt.pt/documentation#delete
$cloudpt->create_folder('some_folder') or die $cloudpt->error;
https://cloudpt.pt/documentation#createfolder
my $data = $cloudpt->metadata('some_folder') or die $cloudpt->error; my $data = $cloudpt->metadata('some_file') or die $cloudpt->error; # 304 my $data = $cloudpt->metadata('some_folder', { hash => ... }); return if $cloudpt->code == 304; # not modified die $cloudpt->error if $cloudpt->error; return $data;
https://cloudpt.pt/documentation#metadata
my $data = $cloudpt->delta() or die $cloudpt->error;
https://cloudpt.pt/documentation#delta
my $data = $cloudpt->revisions('some_file') or die $cloudpt->error;
https://cloudpt.pt/documentation#revisions
# params rev is Required my $data = $cloudpt->restore('some_file', { rev => $rev }) or die $cloudpt->error;
https://cloudpt.pt/documentation#restore
my $data = $cloudpt->search('/path', { query => $query }) or die $cloudpt->error;
https://cloudpt.pt/documentation#search
my $data = $cloudpt->shares('some_file') or die $cloudpt->error;
https://cloudpt.pt/documentation#shares
my $data = $cloudpt->media('some_file') or die $cloudpt->error;
https://cloudpt.pt/documentation#media
my $copy_ref = $cloudpt->copy_ref('folder/test.txt') or die $cloudpt->error; $cloudpt->copy($copy_ref, 'folder/test_copy.txt') or die $cloudpt->error;
https://cloudpt.pt/documentation#copyref
my $fh_get = File::Temp->new; $cloudpt->thumbnails('folder/file.txt', $fh_get) or die $cloudpt->error; $fh_get->flush; $fh_get->seek(0, 0);
https://cloudpt.pt/documentation#thumbnails
my $data = $cloudpt->list('/test', {'file_limit' => 10});
https://cloudpt.pt/documentation#list
my $data = $cloudpt->list_links();
https://cloudpt.pt/documentation#listlinks
my $data = $cloudpt->share_folder('/some_folder', 'my_friend@somewhere.at'); print $data->{'req_id'}
https://cloudpt.pt/documentation#sharefolder
my $data = $cloudpt->list_shared_folders();
https://cloudpt.pt/documentation#listsharedfolders
enable HTTP_PROXY, NO_PROXY
$cloudpt->env_proxy;
Bruno Martins <bruno-martins at telecom.pt>, based on WebService::Dropbox by Shinichiro Aska
<bruno-martins at telecom.pt>
- https://cloudpt.pt/documentation
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install WebService::CloudPT, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::CloudPT
CPAN shell
perl -MCPAN -e shell install WebService::CloudPT
For more information on module installation, please visit the detailed CPAN module installation guide.