我正在尝试将我单独上传到Google云端硬盘的文件从一个文件夹移动到另一个文件夹。
当我这样做时:
my $url = 'https://www.googleapis.com/drive/v3/files/' . $id;
my $tx = $ua->patch(
$url,
json => {
addParents => '0ByFk4UawESNUcEhWdjBWTVRXZ1E',
}
);
文件名已更改,但父文件夹(我的Google云端硬盘的根文件夹)仍然相同。
我肯定做错了什么,但是什么?
我的客户端是Mojo::UserAgent
对象,但似乎并不重要。其他一切都运转正常。
我知道其他语言的类似问题,例如this one,但它们似乎对我来说并不好。
答案 0 :(得分:2)
必须将addParents
和removeParents
添加为参数,而不是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请求体。