如何在Python中使用Google API v3使驱动器文件夹“对网络公开”?

Deskom88

我可以使用以下方法创建文件夹:

from Google import Create_Service

CLIENT_SECRET_FILE = "credentials_gsuite.json"
API_NAME = "drive"
API_VERSION ="v3"
SCOPES = ["https://www.googleapis.com/auth/drive"]
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
folder_name = "Folder"

file_metadata = {"name" : folder_name, "mimeType" : "application/vnd.google-apps.folder"}
service.files().create(body=file_metadata,).execute()

而且我需要使文件夹“对网络公开”。为此,我需要指定permisions:

'role': 'reader

并输入以下内容:

'type': 'anyone'

并允许:

"allowFileDiscovery": True

根据文档判断,这应该可行:

    from Google import Create_Service
    
    CLIENT_SECRET_FILE = "credentials_gsuite.json"
    API_NAME = "drive"
    API_VERSION ="v3"
    SCOPES = ["https://www.googleapis.com/auth/drive"]
    service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
    folder_name = "Folder"
    
    file_metadata = {"name" : folder_name, "mimeType" : "application/vnd.google-apps.folder", 'role': 'reader', 'type': 'anyone',"allowFileDiscovery": True}
    service.files().create(body=file_metadata,).execute()

但是我没有把它发布到网络上。我想念什么?

文档:https : //developers.google.com/drive/api/v3/reference/permissions

Tanaike

修改要点:

  • 不幸的是,采用的方法service.files().create(),似乎permissions不可写。{"mimeType":"application/vnd.google-apps.folder","name":"sample","permissions":[{"role":"reader","type":"anyone","allowFileDiscovery":true}]}用作“文件:创建”的请求正文时,The resource body includes fields which are not directly writable.会发生类似错误因此,在这种情况下,需要在创建新文件夹后使用“权限:创建”方法。

当这反映到您的脚本时,它如下所示。

修改后的脚本:

folder_name = "Folder"
file_metadata = {"name": folder_name, "mimeType": "application/vnd.google-apps.folder"}
folder = service.files().create(body=file_metadata,).execute()
folderId = folder.get('id')

permission = {
    'role': 'reader',
    'type': 'anyone',
    'allowFileDiscovery': True
}
res = service.permissions().create(fileId=folderId, body=permission).execute()
print(res)

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用python,我无法从Google Drive API v3访问共享驱动器文件夹

使用谷歌 API V3 仅过滤谷歌驱动器的名称、ID 等文件夹信息

如何使用v3 rest api从Google驱动器下载文件?

使文件夹共享谷歌驱动器API v3?

如何使用Google Drive API v3上传到Python中的共享驱动器?

如何使用 Google Drive API V3 将文件上传到 Group Drive(共享驱动器)?

使用python API在Google驱动器中显示子文件夹

使用REST API在Google驱动器中创建新文件夹

如何将文件移动到JavaScript中的驱动器API v3中的垃圾?

使用Microsoft Graph API获取驱动器的所有SharePoint文件和文件夹

如何在 Python 中使用 Google Drive API v3 更改所有者?

Google Drive API v3 .NET:如何让用户直接从Google驱动器而不是从服务器下载文件?

如何使用V3 API Python客户端按ID列出Google云端硬盘文件夹的内容?

如何使用 Google Drive API v3 将可恢复上传到 Python 中的共享文件夹?

如何在Google Drive API v3 PHP中的特定文件夹中列出文件

使用api rest在Google驱动器中的创建文件夹期间未定义file.id

如何使用使用Python的驱动器API将文件上传到Google驱动器?

Google Drive API v3在Java中获取根文件夹ID

Google驱动器错误“请选择未通过网络安装的ntfs驱动器上的文件夹。” Windows XP SP3

如何在分页和使用排序依据时列出Google Drive API v3上的所有根文件夹和共享?

如何在 Python 中使用 Google Sheets API v4 更改列宽?

如何在Flutter应用中使用Google Drive API创建文件夹?

使用复制项网络驱动器到本地驱动器时的空文件夹

如何在Google Maps API v3中使用SVG标记

如何在Google Calendar API V3 Java中使用setQ()方法

使用javascript和Google api v3在另一个文件夹中创建文件夹快捷方式

使用curl命令通过drive-rest-api将文件上传到Google驱动器中特定文件夹的直接方法

我可以将网络文件夹与Google驱动器同步吗?

如何通过api v3从GoogleDrive搜索不包括垃圾桶中文件的文件/文件夹?