COS 图床操作¶
本页最后更新于 ,内容可能过时
腾讯云 COS, 公有读, 对象上传后即可通过公网 URL 访问
桶信息¶
| 项 | 值 |
|---|---|
| Bucket | image-1379176255 |
| AppId | 1379176255 |
| 区域 | ap-shanghai |
| 公网前缀 | https://image-1379176255.cos.ap-shanghai.myqcloud.com/ |
密钥不写在本文件里, 见 Skill/PicGo配置.md
日常操作走 ~/.cos.conf, 用不到密钥
安装¶
初始配置¶
凭据存在 ~/.cos.conf, 本机已写好
换机器或轮换密钥后重跑这一条
<SecretId>, <SecretKey> 从 Skill/PicGo配置.md 取
配好之后, 其余子命令都不再需要传凭据
常用命令¶
coscmd list # 列前 100 条
coscmd list -a # 列全部
coscmd list -r backup/ # 按前缀列
coscmd info 20261008005016000.png # 对象元信息
coscmd upload 本地图.png 目标.png # 上传
coscmd download 目标.png 本地图.png # 下载
coscmd delete -f 目标.png # 删除
coscmd signurl 目标.png -t 3600 # 生成限时签名链接
路径参数不带前导 /, 根目录直接写文件名
目录上传加 -r, 跳过同名同大小文件加 -s
注意事项¶
delete不加-f或-y会停下来询问, 在非交互环境里会一直阻塞等待输入- 删除一律带
-f list默认只返回 100 条, 列全量要-a- Windows 下本地路径含反斜杠, 参数用引号包住
- 上传的
Content-Type由扩展名推断,.png会正确识别为image/png - 桶内已有
backup/等目录,list与delete -r注意区分前缀 -r会删掉整个前缀下的所有对象- 本地路径一律写绝对路径, 不要先
cd再传裸文件名 - Bash 工具每次调用都重置工作目录,
cd只对同一条命令的后续语句有效, 下一条里相对路径又不成立 - 报错里出现
b'...'是 coscmd 按 bytes 打印的路径, 表示这个文件不存在 - 不是引号写成两层, 按报错里的路径核对文件是否存在
- 校验对象是否上传成功统一走
curl -sSI,list的输出不便解析
替换笔记图片链接的流程¶
- 取原图: 从笔记里读出 URL,
curl -sSL -o src.png <url>, 或coscmd download <key> src.png - 处理图片, 中间产物放仓库外的临时目录
- 生成新文件名, 规则是
<年月日时分秒>000.png
末三位是同一秒的计数器, 撞了依次递增
多个子 agent 并行上传时, 先给每个子 agent 分一个百位区间, 避免跨子 agent 撞 key
两种 shell 各有一份写法, 取当前环境对应的那份
变量只在同一条命令里有效, 生成与上传要写在一起, 不能分成两次调用
4. 上传: coscmd upload <本地图> <新key>
5. 校验新链接: curl -sSI <公网前缀><新key>, 确认返回 200 与正确的 Content-Length
6. 再改笔记: 先 grep 整个仓库确认旧链接只出现在预期位置
- 有第二处引用就不能删旧对象
7. 最后删旧对象: coscmd delete -f <旧key>
删除不可逆, 排在最后一步
前面的步骤全部验证通过再执行