You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Drive API v2上传文件名称变为无标题问题排查求助

解决Google Drive API v2上传文件文件名变为“Untitled”的问题

我之前也碰到过类似的糟心事,先帮你梳理下核心排查方向,你可以逐个验证:

首先看你贴的代码,这里有个关键细节——你在调用files().insert()时加了convert=True和ocr=True两个参数,这大概率是导致文件名丢失的主要原因!

具体排查点:

  • convert=True的强制转换干扰
    当这个参数设为True时,Google Drive会自动把上传的文件转换成对应的Google原生格式(比如把本地docx转成Google Docs、PDF转成Google文档)。在这个转换过程中,Drive经常会忽略你传入的自定义文件名,直接生成“Untitled”的新文档。如果你的需求只是上传原文件而不需要转换格式,直接把这个参数删掉或者设为False就好。

  • ocr=True的OCR生成逻辑问题
    这个参数是用来开启光学字符识别的,针对图片或扫描件生成可编辑文档。和格式转换一样,开启OCR后生成的新文档也会默认使用“Untitled”作为文件名,不会继承你指定的名称。如果你的文件不需要OCR处理,建议关闭这个参数。

  • 确认filename变量的有效性
    有时候可能是传入的filename变量本身出了问题——比如被意外清空、传错了值。你可以在函数开头加一行打印验证:

    print("当前要设置的文件名:", filename)
    

    运行后看看输出是不是你期望的原文件名,排除变量赋值错误的可能。

  • 权限问题的排查(可能性较低)
    你用的https://www.googleapis.com/auth/drive是全读写权限,权限本身应该没问题。不过可以确认下上传后的文件是不是在你预期的文件夹里,有没有因为目标文件夹的特殊权限设置(比如团队盘的限制)导致文件名被重置,但这种情况很少见,优先排查前面的参数问题。

修改后的代码示例(保留原文件名的基础版本):

如果不需要转换和OCR,你可以把代码改成这样:

def uploadFile(filename, filepath, mimetype):
    file_metadata = {'name': filename}
    media = MediaFileUpload(filepath, mimetype=mimetype)
    # 移除convert和ocr参数,避免自动转换重置文件名
    file = drive_service.files().insert(body=file_metadata, media_body=media).execute()
    print('File ID: %s' % file.get('id'))
    return file.get('id')

如果确实需要转换格式或OCR功能,那可以在上传完成后,再调用files().update()方法手动修改文件名:

# 上传后更新文件名的辅助函数
def updateFileName(file_id, new_name):
    file_metadata = {'name': new_name}
    updated_file = drive_service.files().update(
        fileId=file_id,
        body=file_metadata
    ).execute()
    return updated_file

内容的提问来源于stack exchange,提问作者aryan singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:58:32