跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

PHP Webman操作七牛云存储_Webman实现云端文件管理教程【扩展】

Webman 接入七牛云需完成 token 生成(带 policy 配置回调)、回调验证(用 Authorization::verifyCallback 校验签名并返回纯文本 200)和静态资源路径替换(注入 cdnurl 并修改构建配置)三步,缺一不可。 Webman 里用七牛云,不是装个 SDK 就能上传成功的——关键在 token 生成、回调验证、静态资源路径替换这三步,漏一个就卡在「前端显示成功,后端没记录」。 uploadToken 必须带 policy 才能触发回调 很多 Webman 项目只调
$auth->uploadToken($bucket)
,结果上传完七牛根本不发回调。因为默认 token 不含回调配置,必须显式传
$policy
数组:
callbackUrl
要填公网可访问的地址(如
https://api.example.com/qiniu/callback
),且 Webman 路由得允许 POST
callbackBody
里的变量必须用
$(fname)
这种格式,写成
filename=xxx
会丢数据 v7+ SDK 中
$policy
是关联数组,键名必须小写:
callbackUrl
对,
callbackurl
错 如果用了
saveKey
,回调体里才能取到
$(key)
;否则
$(key)
为空字符串 回调接收端必须校验签名并返回纯文本 200 Webman 的控制器收到七牛回调时,不能直接入库或转发,必须先过签名关: 用
Qiniu\Auth\Authorization::verifyCallback()
校验,第二个参数是原始请求体(
file_get_contents('php://input')
),不是
$_POST
别自己拼 HMAC-SHA1,SDK 已封装好逻辑,传错参数类型(比如把 JSON 字符串当数组)会始终返回 false 响应必须是 HTTP 200 + 纯文本(如
"success"
),返回
{"code":0}
或 HTML 页面会被七牛判定为失败 回调地址若走 Nginx,要确认
client_max_body_size
足够大,否则大文件回调体被截断导致签名不匹配 webman -admin 静态资源上七牛要批量改路径 webman-admin 默认从本地
public/static/
加载 JS/CSS,想切到七牛 CDN,不能只改配置: PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ PHP免费学习笔记(深入) ”; 先确保
cdnurl
配置项已设为七牛绑定的域名(如
https://cdn.example.com
) 在 Webman 启动时用
view()->share()
注入全局变量,让模板里所有
static/
前缀自动替换成
cdnurl
若用的是 webman-admin 自带的构建流程(如 vite),需修改
vite.config.js
的
base
配置为七牛域名,并重新 build 升级 webman-admin 后,记得再跑一遍路径替换脚本,否则新引入的资源仍走本地 最易忽略的是:v7+ SDK 的命名空间和初始化方式已彻底变更,
new Qiniu\Auth()
会 fatal error,必须写全
new Qiniu\Auth\Authorization($ak, $sk)
,且
use
语句不能省略
\Auth\
段。

相关文章