App-ggdrv
view release on metacpan or search on metacpan
lib/App/ggdrv/update.pm view on Meta::CPAN
package App::ggdrv::update ;
use strict ;
use warnings ;
use feature 'say' ;
use HTTP::Request::Common ;
use JSON qw[ encode_json ] ;
use LWP::UserAgent ;
use URI::QueryParam ;
use URI ;
my ($GOOGLE_DRIVE_UPLOAD_API , $gfile , $atoken ) ;
return 1 ;
sub update {
$GOOGLE_DRIVE_UPLOAD_API = "https://www.googleapis.com/upload/drive/v3/files/";
$gfile = $ENV{ GGDRV_API } // "~/.ggdrv2303v1" ;
$atoken = qx [ sed -ne's/^ACCESS_TOKEN[ =:\t]*//p' $gfile ] =~ s/\n$//r ;
while ( my ($file,$id) = splice @ARGV , 0 , 2 ) { f_each ($file,$id) }
# & f_each ( split /:/, $_ , 2 ) for @ARGV ;
}
sub f_each ( $$ ) {
my $URI = URI->new( $GOOGLE_DRIVE_UPLOAD_API . $_[1] );
$URI->query_param( uploadType => 'multipart' );
my $ua = LWP::UserAgent->new;
my $res = $ua->request(
PATCH $URI,
'Content-Type' => 'multipart/form-data',
Authorization => "Bearer $atoken" ,
Content => [
metadata => [
undef, undef, # undef => undef ã¨æ¸ããã¨ã¯åºæ¥ãã ããã?
'Content-Type' => 'application/json;charset=UTF-8',
'Content' => encode_json( {} ) #name=>'temp.txt', mimeType=>'text/plain', parents => ['10_33chars_in_total'], id => $target_fileid},
],
file => [ $_[0] ] #["./anotherName.txt"],
],
);
print $res->code . "\n";
print $res->content . "\n";
}
=encoding utf8
=head1
ggdrv --update ãã¡ã¤ã«å1 ãã¡ã¤ã«id1 [ãã¡ã¤ã«å2 ãã¡ã¤ã«id2] [ãã¡ã¤ã«å3 ãã¡ã¤ã«id3] ..
Googleãã©ã¤ãã®ãã©ã«ãã¼ã®æå®ãããã¡ã¤ã«IDã«ãã¼ã«ã«ã®ãã¡ã¤ã«ãæ´æ°ããã
弿°ã®æ°ã¯ãå¶æ°åã¨ãããã¨ã
ãã¼ã«ã«ã®ãã¡ã¤ã«åã¯ãã¢ãããã¼ãå
ã®ãã¡ã¤ã«åã¨ã¯ä¸è´ããªããã¨ããã(ãã®ãã¡ã¤ã«IDã®åã®ãã¡ã¤ã«ã¨åããã®ã«ãªã)ãã
éçºä¸ã®ã¡ã¢: è¤æ°ã®ãã¡ã¤ã«ã«å¯¾å¿ãããã
æ¨æºåºåã¸ã®åºåã®ä¾:
# 200
# {
# "kind": "drive#file",
# "id": "1..(33æå)....f",
# "name": "example.txt",
# "mimeType": "text/plain"
# }
ã¢ã¯ã»ã¹ãã¼ã¯ã³ã®æå¹æéã®30åãåãã¦ãããããã¨ãä¸è¨ã¯"message": "Invalid Credentials"ãç¾ããã§ãããã
( run in 2.571 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )