要将文件传递到Google Drive API的MediaFileUpload
而不将其保存到磁盘,你可以使用流式传输的方式直接从内存中上传文件。这种方式不需要先将文件内容保存到服务器的磁盘上,而是通过内存中的数据流直接上传。
以下是使用Python语言和Google Drive API实现这一过程的示例代码:
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
import io
# 假设你已经有了授权的Credentials对象
creds = Credentials.from_authorized_user_info(info)
# 创建Drive服务实例
service = build('drive', 'v3', credentials=creds)
# 读取文件内容到内存
file_content = io.BytesIO(b'你的文件内容')
# 创建MediaFileUpload对象,设置文件名和MIME类型
media = MediaFileUpload(file_content, mimetype='application/octet-stream', resumable=True)
# 执行上传操作
file = service.files().create(body={'name': '上传的文件名'}, media_body=media, fields='id').execute()
print(f'文件ID: {file["id"]}')
在这个示例中,我们使用了io.BytesIO
来创建一个内存中的文件流,然后将这个流传递给MediaFileUpload
对象。这样,文件内容就不会被保存到磁盘上。
请注意,上述代码中的info
变量应该包含你的授权信息,这通常是通过OAuth 2.0流程获取的。确保你已经正确设置了Google API客户端并获取了授权凭证。
领取专属 10元无门槛券
手把手带您无忧上云