疑难排解
文件浏览器路由返回 404
确认 Bundle 已注册且路由资源已导入:
bash
bin/console debug:router | grep sofinder导入路由的前缀决定公开 URL。保留作兼容用途的 so_finder.route_prefix 配置不能取代路由导入。
文件浏览器返回 401 或 403
- 确认请求由已验证用户的 Symfony firewall 处理。
- 检查资源的
roles、operation_roles与path_acl。 - 请记住,适用的 deny 规则优先于 allow。
- 前端显示的 capability 仅供参考;服务器会再次授权最终操作与路径。
上传遭到拒绝
依序检查:
- PHP/Web Server 的 request body 大小与 timeout 限制。
- 资源的
max_size、扩展名及 MIME allowlist。 - 文件名长度与目的地文件夹深度。
- 资源 quota 与文件系统可用空间。
- 隔离区、分段上传、存储与用量目录的写入权限。
- 审计记录是否有主动式内容或解码后图片遭拒绝的信息。
图片没有预览或编辑器
bash
bin/console sofinder:image:capabilities安装具备所需 coder 的 GD 或 Imagick,再重新启动 PHP 执行环境。HEIC、HEIF 与 TIFF 可存储在一般文件资源中,但刻意不提供浏览器预览或编辑。详见图片格式。
未验证即可存取私有文件
delivery_mode: public 会刻意略过 SoFinder 的读取授权。请将存储根目录移至 Web 根目录以外、移除 Web Server alias、清空 public_url,并改用 delivery_mode: proxy。
产生的链接使用错误前缀
Symfony 导入路由的前缀才是最终依据。修正 config/routes/so_finder.yaml,再清除正式环境的路由与应用程序缓存。
外部导入后 quota 不正确
bash
bin/console sofinder:usage:recalculate重新计算期间,不要从 SoFinder 以外修改受管理的存储空间。
S3 兼容供应商连线失败
- 除非是明确受信任的本机 MinIO 网络,否则请使用 HTTPS。
- 分别确认 region、endpoint 与 bucket。
- MinIO 启用 path-style endpoint;AWS S3、R2 与 B2 通常保持停用。
- Cloudflare R2 使用
region: auto。 - 若供应商不支持有条件的 Put Object,只有在接受文件所述的并行建立竞争后,才配置
conditional_writes: false。 - 使用软件包的供应商 smoke test、非正式环境 bucket,以及限制前缀的凭证。
收集有用的诊断信息
请提供版本、移除机密后的有效配置、路由输出、失败操作及相关应用程序记录。切勿在公开 issue 贴上凭证、签署 URL、session 识别码或私有文件内容。安全漏洞请通过 GitHub 私密漏洞报告通报。