使用PyDrive管理来自公共Google云端硬盘URL的文件

时间:2016-06-20 01:12:38

标签: python google-api-python-client 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)

我能够正常列出我的文件,但我需要从我已经过身份验证的GoogleDrive帐户列出并管理来自其他公共驱动器URL(不是我个人认证的驱动器)的文件,就像我使用请求一样库。 任何想法怎么做?

1 个答案:

答案 0 :(得分:5)

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

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

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

    如果这不起作用,您可能需要在浏览器中打开时使用共享文件夹右上角的“添加到云端硬盘”按钮将远程文件夹添加到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删除/删除文件可以使用GitHub提供的更新版本完成:pip install instructionsDelete/Trash/UnTrash documentation

  3. 最后,如2.1所述,上传到文件夹的feature requestlisting files of a folder,如2所述。 - 如果您发现上述内容不起作用,您可以将其添加为问题/ feature对存储库的请求。