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

How can I move files with Google Drive API v3 (perl)

我正在尝试将单独上传到 Google 驱动器的文件从一个文件夹移动到另一个文件夹。

当我这样做时:

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

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

文件名已更改,但父文件夹(即我的 Google 驱动器的根文件夹)仍然相同。

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

我的client是一个Mojo::UserAgent对象,不过好像关系不大。其他一切正常。

我知道 等其他语言的类似问题,但它们对我来说似乎翻译得不太好。

必须将 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 中 'Required query parameters' 和 'Optional query parameters' 中的任何内容都作为查询进入,'Optional Properties' 进入 JSON 请求正文。