gpt4 book ai didi

python - 谷歌云端硬盘 SDK : How do you copy a file so the copy lives only in the root folder?

转载 作者:行者123 更新时间:2023-11-30 23:19:30 25 4
gpt4 key购买 nike

我正在尝试找出一种有效的方法来复制 Google 云端硬盘文件,以便该副本仅存在于用户的根文件夹中。

我知道当您创建新的 Google 云端硬盘文件时,默认情况下它位于根文件夹中:

>>> body = {"title": "Test Document", "mimeType": "application/vnd.google-apps.document"}
>>> document = drive_service.files().insert(body=body).execute()
>>> document["parents"]
[{u'id': u'...', u'isRoot': True, 'kind': u'drive#parentReference', ...}]

但是,当您复制 Google 云端硬盘文件时,默认情况下它位于与源​​相同的文件夹中。

一种可能是首先查询用户根文件夹的 ID 并将其传递到复制请求中:

>>> about = drive_service.about().get().execute()
>>> root_id = about["rootFolderId"]
>>> body = {"title": "My copy", "parents": [{"id": root_id}]}
>>> copied_document = drive_service.files().copy(fileId="SOMEID", body=body).execute()

但是,上述需要额外的查询并增加完成操作的总时间。

我正在寻找一种在不提前知道根文件夹 ID 的情况下执行此操作的方法。我尝试将空列表传递给“ parent ”,但这仍然会导致副本被放置在同一文件夹中:

>>> body = {"title": "My copy", "parents": []}
>>> copied_document = drive_service.files().copy(fileId="SOMEID", body=body).execute()

我还尝试传递根文件夹的“ stub ”,但这引发了错误:

>>> body = {"title": "My copy", "parents": [{"isRoot": True, "kind": "drive#parentReference"}]}
>>> copied_document = drive_service.files().copy(fileId="SOMEID", body=body).execute()
Traceback (most recent call last)
...
HttpError: <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/SOMEID/copy?alt=json returned "File not found:">

我还缺少其他方法吗?

(以上示例使用 Google API Python 客户端)

最佳答案

我似乎记得 root 的文件夹 ID 别名为“root”。尝试在第二种方法中将其作为 root id 传递。

关于python - 谷歌云端硬盘 SDK : How do you copy a file so the copy lives only in the root folder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com