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

使用gsutil创建上传用签名URL时遭遇404 NotFoundException错误求助

解决GCS可恢复上传签名URL的NotFoundException问题

别担心,你完全不需要提前创建占位对象——可恢复上传的签名URL本来就是用来上传新对象的,不存在的对象是正常情况。这个404错误的根源肯定在别的地方,咱们一步步排查:

  • 检查存储桶是否存在
    这个错误很可能是因为目标存储桶本身不存在,而非对象不存在。先运行这条命令验证存储桶的存在性:

    gsutil ls gs://<存储桶名称>
    

    如果返回错误,说明存储桶拼写错误或者还没创建,先把存储桶的问题解决掉。

  • 核对服务账号的IAM权限
    你指定的服务邮箱必须拥有创建对象的权限,也就是storage.objects.create权限。可以通过以下命令查看该服务账号的权限:

    gcloud projects get-iam-policy <你的项目ID> --filter="bindings.members:serviceAccount:<你的服务邮箱>"
    

    确保它被分配了Storage Object Creator角色,或者包含storage.objects.create权限的自定义角色。如果权限不足,给服务账号添加上对应的角色即可。

  • 检查路径拼写细节
    GCS的存储桶名是区分大小写的(且要求全小写),对象路径的拼写也不能有错误,比如多余的斜杠、拼写错误的文件名。仔细核对gs://<存储桶名称>/<新对象名称>的每一部分,确保和实际存储桶的信息完全匹配。

  • 验证命令参数的合理性
    几个小细节可以调整试试:

    • 标准的JPEG MIME类型是image/jpeg,虽然GCS可能兼容image/jpg,但改成标准值试试;
    • 暂时去掉-D调试参数,简化命令,排除调试模式带来的干扰;
    • 确认参数顺序正确,你的命令结构是对的,但可以尝试去掉-c参数先生成URL,看是否还会报错。

如果排查完这些点,应该就能解决这个404问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:49:07