私有 base 中,通过 API Token 上传到图片列的文件,登录用户网页端加载返回 403,图片无法显示;浏览器手动上传正常。请排查文件在 base asset 库的读权限。
环境
-
部署形态:cloud.seatable.cn 私有 base(workspace
571214,base uuid6ddb30b7,base 名「日常物品购买清单」) -
客户端:网页端(登录态)操作
-
现象出现时间:2026-08 起
现象
-
表格「图片」列(image 类型)中,通过 API Token 程序上传的图片完全不显示(缩略图空白,浏览器控制台
<img>请求返回 HTTP 403 Forbidden)。 -
同一列,在网页端手动拖拽上传的图片可以正常显示。
-
表格普通编辑(增删改行、文本/数字列)一切正常 → dtable-server 写服务可用,问题仅限图片/文件列的读取渲染。
复现步骤
-
用 base 的 API Token 调
GET /api/v2.1/workspace/{ws}/dtable-asset-upload-link/?name={base中文名}拿到 upload_link; -
把图片
POST到 seafhttp 的 upload_link(ret-json=1),文件确实写入了/asset/{base-uuid}/images/...; -
把返回的文件对象(
{type,name,url,size})写回行的图片列; -
用同一登录用户的浏览器打开该表 → 图片列空白,Network 里该图片 URL 返回 403。
期望行为:通过 API Token 上传并正确写回图片列的文件,登录用户网页端应能正常加载显示(与手动上传一致)。
已排除
-
不是图片格式问题(手动传同格式可显示);
-
不是路径格式问题(已用绝对 asset 路径,文件确实存在于 asset 库);
-
不是写服务宕机(其他列编辑正常)。
怀疑方向(供支持参考):API Token 上传落到 base asset 库的文件,读权限/归属未正确关联到 base 成员会话,导致网页端带 session 读取时被 403。疑似 asset 库(Seafile 库)权限传播问题,而非前端渲染问题。