给大模型喂一张本地图,我先绕了半小时网盘弯路:记三个坑和两条正路
周二要让模型看一批本地图,我下意识先去传网盘。分享链接要登录,换一家拼出来的直链两小时后失效。又去摸对象存储,开桶设权限拼链接,半小时过去图还没进模型。文件就在桌面上,这件事越想越不对。
后来翻阿里云百炼命令行的帮助才发现,看图那条命令的参数写的是「本地路径或 URL」。桌面上的路径直接递进去,12 秒就把图里我故意写的那行字读了回来。半小时弯路是我自己修的。记一下这轮里踩的三个坑和两条正路。
正路一:本地路径直接递
我造了张探针图,640×400,图里写一行哨兵文字 PROBE 20261103 local file,模型读得回这行字才算真看见了文件。
递本地路径,12 秒回来,字一字不差。开详细日志看,全程只有一条发往对话接口的请求,没有上传动作,文件是被内联进请求体的。
怕大图不行?又造了张 19.4 MB 的噪点图,本地直传还是 12 秒量级,回来一段挺认真的描述。所以「图太大要先传」这个念头可以放下了。
本地路径的毛病只有两个:文件得在跑命令的那台机器上;每调用一次重传一次。单机单次用完全无感。
坑一:传完拿到的地址,浏览器打不开
确实需要地址的时候(脚本要复用、要换机器跑),用 bl file upload。传完返回一个 oss:// 开头的地址、一句 48 小时有效、一句提醒要加请求头。
我第一反应把地址贴进浏览器,打不开。下载工具也打不开。不是传失败,是 oss:// 这个协议本来就不给浏览器用。
坑二:自己写调用报 400,说 URL 不合法
绕开命令行直接调接口,把地址填进 image_url,400,报错「The provided URL does not appear to be valid」。地址是命令原样给的,凭什么不合法?
做了个对照才明白:同一个地址、一模一样的请求体,只差一个请求头 X-DashScope-OssResourceResolve。不带头 400,带头 200,账目里记着 242 个图像 token。服务端默认不解析 oss://,开关要调用方自己开。
用命令行的话这个头它替你加了,我把同一地址喂给看图、全模态、改图三个命令都成功,全模态那次连字在左上角都说对了。自己写 curl 或 SDK 的人,这个头得自己记。
坑三:PDF 传得上去,但模型不吃
帮助示例只列图片、视频、音频,我偏传了个 PDF。上传成功,地址照给,一点报错没有。喂给看图命令才报 400,「image format is illegal and cannot be opened」。
所以上传这一步不检查类型,检查在模型那一步。批量脚本要是拿上传返回值当成败判据,会把一堆模型打不开的文件标成成功。
顺带两个同类发现:帮助说文件绑定指定模型,实测两个方向跨模型都不拦,绑定是声明不是闸门;同文件传两次是两个地址,不去重,脚本里得自己记。
正路二:地址当门票,不当存储
48 小时这个钟决定了用法。我现在是任务开头传一次、地址记在变量里、窗口内把要用它的调用跑完、然后不管了让它自清。
三种用法别学:地址写进长期配置(两周后别人跑到 400 还以为是自己的错)、当分享链接发人(打不开还得解释协议)、以为文件会一直留着(第 49 小时取不到)。要长期用的素材存自己那儿,需要时再传一次。
还有一句提醒:48 小时是命令自己报的,我没真等两天看它失效,别把我这句当实测过期时刻。
产物链接别直接贴
改图命令返回的 https 地址看着正常,但参数里挂着 AccessKeyId 和 Signature。带签名的临时链接,过期打不开是一重,没过期时谁拿到都能用、还露着凭证是第二重。我的习惯是下载自存、归档前把签名串换掉、文章里不贴原串。转发给别人,对方隔天看到一张坏图,坏图还会被他缓存住。
收尾
那批图最后的处理顺序:脚本里直接给本地路径一轮跑完;要跨机复跑的部分,任务开头 upload 一次拿地址,窗口内用完拉倒。网盘和自建桶都退场了。
不必上传的情况也记一下:只调一次且文件在那台机器上的,直接给路径;素材本来就有稳定公网直链的,直接给 https 地址,还没有 48 小时这个钟;要长期留存的别用临时地址,它自毁是设定。
命令行从CLI 安装页装,Key 在控制台密钥管理页领。想试就拿桌面一张图,把路径直接递给看图命令问一句图里有什么,先走零上传那条路。

浙公网安备 33010602011771号