使用 PyDrive 管理 public Google 驱动器 URL 中的文件

Manage files from public Google Drive URL using PyDrive

我正在使用 PyDrive QuickStart 脚本列出我的 Google 驱动器文件。

代码:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)

file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()

print(file_list)

我可以正常列出我的文件,但我需要列出和管理来自另一个 public 驱动器 URL 的文件(这不是我的个人验证驱动器)来自我已经验证的Google驱动帐户就像我使用请求库一样。 有什么想法吗?

  1. 您需要获取文件夹 ID。您可以在文件夹的 URL 中找到 ID。一个例子是: https://drive.google.com/open?id=0B-schRXnDFZeX0t0RnhQVXXXXXXid=之后URL的部分)。

  2. 根据 ID 列出文件夹的内容。根据您的代码,您将 file_list = ... 替换为:

    file_id = '<Your folder id here.>'
    file_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % file_id}).GetList()
    

    如果这不起作用,您可能必须使用在浏览器中打开共享文件夹右上角的 "Add to Drive" 按钮将远程文件夹添加到您的 Google 驱动器。

    2.1 在文件夹中创建文件可以这样完成:

    file_object = drive.CreateFile({
                "parents": [{"kind": "drive#fileLink",
                             "id": parent_id}],
                'title': file_name,
                # (Only!) If the new 'file' object is going be a folder:
                'mimeType': "application/vnd.google-apps.folder"
            })
    file_object.Upload()
    

    如果失败请检查您是否对该文件夹有写入权限。

    2.2 Deleting/Trashing 可以使用 GitHub 提供的更新版本完成一个文件:pip install instructions, Delete/Trash/UnTrash documentation

最后,有一个 feature request to Upload to folders as described in 2.1, and listing files of a folder,如 2 中所述。- 如果您发现以上内容不起作用,您可以将其作为问题/功能请求添加到存储库中。