Vertex AI数据集导入指定GCS图片版本(生成号)遇权限错误求助
Vertex AI数据集导入指定版本GCS对象的问题处理
是否支持直接通过路径追加版本号导入?
不支持。Vertex AI的CSV数据集导入逻辑会将包含#<生成号>的完整字符串当作GCS对象的名称去查找,而非解析为GCS对象的版本标识,所以会出现“权限不足或对象不存在”的错误——实际上它在找一个名为3.jpg#1786754391100710的对象,而非3.jpg的指定版本。
解决方法
复制指定版本对象到新路径(最简便)
使用gsutil命令将目标版本的对象复制到一个新的GCS路径,避免版本号冲突:gsutil cp gs://MYBUCKET/clouds/cumulonimbus/3.jpg#1786754391100710 gs://MYBUCKET/clouds/cumulonimbus/3_v1.jpg之后修改CSV中的路径为
gs://MYBUCKET/clouds/cumulonimbus/3_v1.jpg,cumulonimbus,再执行导入操作即可。调用Vertex AI API指定版本导入
若不想复制对象,可以直接调用Vertex AI数据集的API接口,在创建数据项的请求中,通过version_id参数指定GCS对象的版本号。示例请求体片段:{ "gcs_source": { "uri": "gs://MYBUCKET/clouds/cumulonimbus/3.jpg", "version_id": "1786754391100710" }, "annotation_spec_id": "YOUR_ANNOTATION_SPEC_ID" }这种方式能直接导入指定版本的对象,无需修改原始路径。
验证服务账号权限(不推荐尝试)
若坚持使用带#的路径格式,需确认Vertex AI使用的服务账号(格式为service-PROJECT_NUMBER@gcp-sa-vertexai.iam.gserviceaccount.com)拥有storage.objects.get权限,且权限覆盖对象的所有版本。但由于Vertex AI导入逻辑不支持解析版本号,此方法大概率无法解决问题,仅作参考。
内容的提问来源于stack exchange,提问作者LG01
相关产品推荐
相关产品推荐

