gpt4 book ai didi

python - Google Drive API - 使用 blob 从 MediaFileUpload 上传

转载 作者:行者123 更新时间:2023-12-05 06:36:47 25 4
gpt4 key购买 nike

我正在尝试通过 v3 API 将文件 (pdf) 上传到 Google Drive,我想从电子邮件的附件中创建文件。我发现的所有文档似乎都依赖于我想上传 blob 的本地文件。

到目前为止,这是我的代码的本质:

class MailHandler(InboundMailHandler):
def receive(self, mail_message):
logging.info("Received a message from: " + mail_message.sender)
if hasattr(mail_message, 'attachments'):
logging.info("Has attachments")
for filename, filecontents in mail_message.attachments:
file_blob = filecontents.payload.decode(filecontents.encoding)
credentials = UserModel.query().get()
media = MediaFileUpload(filename, mimetype = 'image/jpg')
file = drive.files().create( body = {'name': 'testupload.jpg'}, media_body = media)
file.execute(c.credentials.authorize(http))

这会引发错误,因为文件不存在,它不存在是因为它是一个 blob。

有人可以帮帮我吗?

最佳答案

最后,关键是使用 apiclient.http 模块中的 MediaInMemoryUpload,这是我通过检查 http 发现的。

以下是如何使用它的粗略概述:

from apiclient.http import MediaInMemoryUpload
media = MediaInMemoryUpload(file_blob, mime_type, resumable=True)
file = drive.files().create(body={'name': filename},media_body=media)
file.execute()

关于python - Google Drive API - 使用 blob 从 MediaFileUpload 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831189/

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