【问题标题】:Find file's parent id : Google Drive API V3查找文件的父 ID:Google Drive API V3
【发布时间】:2015-12-14 09:14:27
【问题描述】:

今天我将 Drive API 更新到 V3 后,我想找到任何方法来查找所选文件的父级。获取与父母信息相关的 json 的其余端点是否已更改?

【问题讨论】:

    标签: google-api google-drive-api drive


    【解决方案1】:

    如果您有相关文件的文件 ID,则 Files: get 您需要添加字段,即父母以及文件 ID。

    请求

    获取 https://www.googleapis.com/drive/v3/files/0B5pJkOVaKccENWNNcFFaU2lSM0E?fields=parents&key={YOUR_API_KEY}

    返回

    {“父母”:[“0B5pJkOVaKccEYW5lVHBKd1Zwc28”]}

    结果实际上是一个文件 id。请记住 Drive 中的文件和目录是相同的。

    再次执行 files.get

    获取 https://www.googleapis.com/drive/v3/files/0B5pJkOVaKccEYW5lVHBKd1Zwc28?key={YOUR_API_KEY}

    结果

    { "kind": "drive#file", "id": "0B5pJkOVaKccEYW5lVHBKd1Zwc28", “名称”:“站点备份”、“mimeType”: “应用程序/vnd.google-apps.folder”}

    【讨论】:

    • 您指向的文档链接是 Google Drive V2。 Google Drive V3 没有 parent().list() 等方法
    • 您使用什么语言?我认为 V3 仅适用于我认为的 android 和 ios。我将不得不为此挖掘一些其他文档。
    • java 和 javascript 都是根据适用性来使用的。剩下的方法会在以后的版本中出现还是会被弃用?
    • 为 v3 更新:奇怪的是 V3 没有真正的文档站点。我需要看看我是否能弄清楚为什么会这样。
    • 在 javascript 中完美运行。但是如何使用 java api 设置部分字段掩码“父”?或者我是否应该像在 javascript 中一样从那里打个电话休息
    【解决方案2】:

    恭喜,您在我们officially announced it 之前几个小时发现了 Google Drive API 版本 3。 :)

    在 v3 中,不再有父母集合。相反,您可以通过使用孩子的 ID 执行 files.get 来获得父母的财产。理想情况下,您将使用fields parameter 将响应限制为仅限父母。注意:一个文件可能有多个父级,因此请准备好处理多个父级。

    您可以通过查看migration cheat sheet 了解从 v2 到 v3 的变化。

    【讨论】:

    • 所以你们删除了获取包含特定子 fileId 的文件列表的功能? fileId in children?为什么?现在我们必须调用 fileId,获取 parentId 数组,然后单独调用来获取这些文件。比较麻烦。
    • 无论如何你都必须这样做,旧方法也只返回一个文件ID列表。此外,您不必迁移到 v3,如果您觉得需要,可以愉快地继续使用 v2。
    • 旧的方式,我们可以用:fileId in children 调用/files,它会返回一个DriveFile 对象的集合(完全扩展,就像那个端点的std)谁是那个的父对象文件标识。一个电话。
    • 这从来都不是 API 中的一个特性。我不再使用云端硬盘,但已与他们联系以获取有关您问题的答案。
    • 在响应删除事件时无法获取已删除文件的父级。
    【解决方案3】:

    如果你使用 SDK 来做

            $service    = new Google_Service_Drive($client);
    
            // Print the names and IDs.
            $optParams = array(
                'fields'    => 'nextPageToken, files(id, name, fileExtension, trashed, webViewLink, mimeType, ownedByMe, parents, fileExtension, webContentLink)',
                'q'         => $folderId . " in parents" // pass the folder id as a string to the variable $folderId
            );
    
            $results = $service->files->listFiles($optParams);
            $results = $results->getFiles();
    

    【讨论】:

    • 这里有一个错误,你需要在$folderId中打勾。在 PHP 中,类似于以下内容: $query = '\'' 。 $文件夹标识。 '\' 在父母中';
    猜你喜欢
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多