python - 如何使用 python 脚本在谷歌驱动器中创建和显示文件夹?
问题描述
此代码显示的id
是,folder_name
但它没有显示folder_name
在谷歌驱动器中。我的目的是创建和显示folder_name
谷歌驱动器。怎么做?
import httplib2
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
scope = 'https://www.googleapis.com/auth/drive'
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
http = httplib2.Http()
drive_service = build('drive', 'v3', http=credentials.authorize(http))
def createFolder(name):
file_metadata = {
'name': name,
'mimeType': 'application/vnd.google-apps.folder'
}
file = drive_service.files().create(body=file_metadata,
fields='id').execute()
print('Folder ID: %s' % file.get('id'))
createFolder('folder_name')
解决方案
在您的脚本中,该文件夹由服务帐户创建。我认为这是您的问题的原因。服务帐户的 Google Drive 与您的 Google Drive 不同。这样,使用浏览器就无法在您的 Google Drive 中看到由服务帐户创建的文件夹。当你想在浏览器上看到服务账户创建的文件夹时,下面的流程怎么样?
- 在您帐户的 Google 云端硬盘中创建新文件夹。
- 请在您的 Google 云端硬盘中创建新文件夹。在这种情况下,您可以使用浏览器创建它。
- 与服务帐户的电子邮件共享创建的新文件夹。
- 这样,服务帐户就可以访问您在 Google Drive 中创建的文件夹。
- 电子邮件地址可以在文件中确认
credentials.json
。
- 使用脚本中的服务帐户为共享文件夹创建一个文件夹。
通过这个流程,我认为您的目标可以实现。为此,请按如下方式修改您的脚本。
从:
file_metadata = {
'name': name,
'mimeType': 'application/vnd.google-apps.folder'
}
到:
file_metadata = {
'name': name,
'mimeType': 'application/vnd.google-apps.folder',
'parents': ['### folder ID ###']
}
- 请替换
### folder ID ###
为您在 Google Drive 中创建的文件夹 ID。 - 通过上述修改,脚本创建的文件夹可以使用浏览器在您的 Google Drive 中看到。
参考:
推荐阅读
- java - 当我有映射时,出现没有映射的异常
- kubernetes - 将其公开为服务后无法访问由谷歌 kubernetes 引擎(GKE)创建的 IP
- javascript - Discord.JS 13 斜杠命令显示目标用户的特定用户角色并嵌入,
- node.js - Websockets 在我使用 nginx 托管在 EC2 上的节点服务器上的生产失败。关于如何从邮递员调试 1006 异常关闭错误的任何提示?
- typescript - 在nestjs中添加松弛/螺栓时超时
- oracle - 如何提高activejdbc启动性能?
- azure - ServiceBus 消息传递时间可靠吗?
- junit - Leiningen 不运行 JUnit 测试用例
- google-tag-manager - GA4 调试视图值数组问题 [使用 Google Tag Manager for GA4 进行电子商务跟踪]
- vb.net - 尝试加载图像时,选项卡控件中的vb.net winform图片框收到错误消息