sironekotoroの日記

Perl で楽をしたい

Perl で Google Drive API をつかって特定のファイルを削除する

ファイルの上書き終わったところでこのシリーズ(シリーズ?)終わらせようと思っておりました。

しかし CRAD:Create, Read, Add, Delete の一角たる Delete やらないっていうのはないんじゃないか?

どうせ後で必要になりそうだし・・・あぁ、でも面倒〜。

ってことでやりました。

いざ手をつけるとすぐでしたが、普段は色々なモジュールの裏に隠れている HTTP の DELETE メソッドを明示的に初めて使ったように思います。

情報処理試験の教本や問題集でしか見たことのなかった(そして問題には出そうにない) DELETE メソッド、本当にあって本当に使えるんや・・・という謎の感動がちょっとあります。

そして、削除が成功した時の HTTP ステータスコード 204 これも初見でした。

先輩と覚える HTTP ステータスコード · GitHub

削除したら応答も何もないよねというのわかる。

はー!これで CRAD 全部揃ったーはずー!!

・・・しかし、なんか my 宣言が並んでてアレな感じのコードですね・・・

#!/usr/bin/env perl
use strict;
use warnings;

binmode STDOUT, ":utf8";

use URI;
use HTTP::Tiny;

my $ACCESS_TOKEN  = "";

my $GOOGLE_DRIVE_API = "https://www.googleapis.com/drive/v3/files/";

my $delete_fileid = "1SNmgEpX2xnFCbeRQWtGg4PdU0ic6h92IO-VuynVGli8";

my $bearer = join ' ', ( 'Bearer', $ACCESS_TOKEN );

my $uri = URI->new( $GOOGLE_DRIVE_API . $delete_fileid );

my $ht = HTTP::Tiny->new( default_headers => { Authorization => $bearer } );

my $response = $ht->delete($uri);

print $response->{status} . "\n";    # 204