【问题标题】:How can I move files with Google Drive API v3 (perl)如何使用 Google Drive API v3 (perl) 移动文件
【发布时间】:2017-07-02 20:13:09
【问题描述】:

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

当我这样做时:

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

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

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

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

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

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

【问题讨论】:

  • Re "我知道其他语言的类似问题,但它们似乎对我来说翻译得不好。",可能适合我们。请提供!
  • 请设置一个我们可以用来测试的公共文件结构。 0ACFk4UawESNUUk9PVA0ByFk4UawESNUcEhWdjBWTVRXZ1E 很可能是完全错误的。请使用 URI 之类的东西来操作 URL。连接字符串是不安全的。
  • “文件名改了,但父文件夹(我的 Google Drive 的根文件夹)还是一样” 这让我很困扰。您是否希望重命名根文件夹?请准确描述patch 调用应该做什么,包括这两个ID 的含义。并添加指向您认为支持您所写内容的 Google 文档的链接。
  • @borodin - 我编辑以消除文件重命名部分,我希望 sn-p 现在更清晰。该文档位于developers.google.com/drive/v3/reference/files/update。 id 0ByFk4UawESNUcEhWdjBWTVRXZ1E 已验证,来自同一个 API

标签: perl google-drive-api mojolicious


【解决方案1】:

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 请求正文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 2020-05-23
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    相关资源
    最近更新 更多