如何使用Google Drive API v3(perl)移动文件

时间:2017-07-01 16:50:31

标签: perl google-drive-api mojolicious

我正在尝试将我单独上传到Google云端硬盘的文件从一个文件夹移动到另一个文件夹。

当我这样做时:

my $url = 'https://www.googleapis.com/drive/v3/files/' . $id;

my $tx  = $ua->patch(
    $url,
    json => {
        addParents    => '0ByFk4UawESNUcEhWdjBWTVRXZ1E',
    }
);

文件名已更改,但父文件夹(我的Google云端硬盘的根文件夹)仍然相同。

我肯定做错了什么,但是什么?

我的客户端是Mojo::UserAgent对象,但似乎并不重要。其他一切都运转正常。

我知道其他语言的类似问题,例如this one,但它们似乎对我来说并不好。

1 个答案:

答案 0 :(得分:2)

必须将addParentsremoveParents添加为参数,而不是JSON有效内容。

这有效:

my $url = Mojo::URL->new('https://www.googleapis.com/drive/v3/files/fileID');

$url->query({ addParents    => 'parentIdToBeAdded',
              removeParents => 'parentIdToBeRemoved' });

my $tx = $ua->patch($url, json => { modifiedTime  => '2017-06-04T10:00:00-02:00' });

其他一些 - 如上面的请求中 - 添加在JSON正文中。

基本上documentation中的任何内容都在'必需的查询参数'和'可选的查询参数'作为查询进入,'可选属性'进入JSON请求体。