gpt4 book ai didi

Python Google Drive API,上传内存中的数据而不是磁盘上的文件?

转载 作者:行者123 更新时间:2023-12-04 01:29:02 25 4
gpt4 key购买 nike

我一直在搜索论坛,但没有成功解决我的问题。

我正在尝试使用 Google Drive Python API 将内存中的文件上传到 Google Drive。但是,我看到的所有示例都使用磁盘上具有特定文件路径和名称的文件。

 service = build('drive', 'v3', credentials=creds)

media = MediaFileUpload(
'MyFile.jpeg',
mimetype='image/jpeg',
resumable=True
)
request = service.files().create(
media_body=media,
body={'name': 'MyFile', 'parents': ['<your folder Id>']}
)
response = None
while response is None:
status, response = request.next_chunk()
if status:
print("Uploaded %d%%." % int(status.progress() * 100))
print("Upload Complete!")


但是,我想做这样的事情:

with open('MyFile.jpeg', 'rb') as FID: 
fileInMemory = FID.read()

myGDriveUpload(fileInMemory)

#Pass jpeg file that has been read into memory
#to Google Drive for upload.


由于我正在执行的操作,该文件将在内存中,因此无需保存到磁盘,使用文件路径上传文件,然后删除临时保存在磁盘上的文件。

如何只上传内存中的文件而不必将其保存到磁盘并使用文件路径和名称?

谢谢

最佳答案

  • 您想使用 googleapis 和 python 将内存中的数据上传到 Google Drive。
  • 您要使用 fileInMemory以下脚本。
    with open('MyFile.jpeg', 'rb') as FID: 
    fileInMemory = FID.read()
  • 您已经能够使用 Drive API 上传文件。

  • 在这个答案中,我使用了“Class MediaIoBaseUpload”而不是“Class MediaFileUpload”。

    示例脚本:
    service = build('drive', 'v3', credentials=creds)

    with open('MyFile.jpeg', 'rb') as FID:
    fileInMemory = FID.read()

    media = MediaIoBaseUpload(io.BytesIO(fileInMemory), mimetype='image/jpeg', resumable=True)
    request = service.files().create(
    media_body=media,
    body={'name': 'MyFile', 'parents': ['<your folder Id>']}
    )
    response = None
    while response is None:
    status, response = request.next_chunk()
    if status:
    print("Uploaded %d%%." % int(status.progress() * 100))
    print("Upload Complete!")

    引用:
  • Class MediaIoBaseUpload
  • 关于Python Google Drive API,上传内存中的数据而不是磁盘上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61348838/

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