为Google云端硬盘文件设置多个父级

时间:2014-02-22 08:39:20

标签: android google-drive-api

阅读几篇SO帖子(例如here),其中提到Google云端硬盘文件可以包含多个父级,即多个文件夹中的相同文件。我想测试一下,因为我正在集思广益,为我的Android应用程序备份文件集合,而不必在每次备份时重新加载整个集合。

不幸的是,当我在下面设置文件元数据时,该文件不会上传到任一父文件夹。当我向其中一位父母发表评论时,它会上传并显示。

因此,我认为设置多个父项的功能是为“垃圾”或“收藏夹”等特殊文件夹保留的。或者我是否需要在初始创建后尝试更新文件?

    List<ParentReference> parents = new ArrayList<ParentReference>();
    parents.add(new ParentReference().setId(parentId1));
    parents.add(new ParentReference().setId(parentId2));


static private File create_File(String fileName, List<ParentReference> parents){

    String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("db");

    System.out.println("Mimetype " + mimeType);

    // File's metadata.
    File file = new File();
    file.setMimeType(mimeType);
    file.setTitle(fileName);
    file.setParents(parents);

    return file;
}

3 个答案:

答案 0 :(得分:6)

因此,我认为设置多个父母的功能是为“垃圾”或“收藏夹”等特殊文件夹保留的。

没有。任何文件都可以有多个父项。您可以在https://developers.google.com/drive/v2/reference/files/insert#try-it

轻松试用

或者我是否需要在初次创建后尝试更新文件?

没有。您可以在创建时拥有多个父项。

养成查看应用发送的http请求并将其与https://developers.google.com/drive/v2/reference/files/insert#try-it

中的内容进行比较的习惯是一个好主意。

您可以在此处启用http记录https://developers.google.com/drive/v2/reference/files/insert#try-it

答案 1 :(得分:0)

根据我从API中获得的错误消息,根据以下给出的来自Google的错误消息,限制是对Team Drives或Shared Drives的:

...?supportsAllDrives = true ...

403
"errors": [ { "domain": "global", "reason": "teamDrivesParentLimit", "message": "A shared drive item must have exactly one parent." }

答案 2 :(得分:0)

2020 年 9 月 30 日起,不再允许多位家长。您现在可以使用 shortcuts 迁移或解决您的问题。