Greasy Fork is available in English.
右键图片或悬停按钮上传到 CloudFlare ImgBed,支持按网址匹配 uploadFolder。
一个用于浏览器用户脚本管理器(如 Tampermonkey / Violentmonkey)的轻量级上传工具。
它可以让你在任意网页中,快速将图片上传到 CloudFlare ImgBed(CFBed) ,并自动复制返回链接。
本脚本主要面向以下场景:
与传统“重 UI 面板型”用户脚本不同,本脚本采用极简交互设计:
因此更适合日常长期使用。
本脚本适合以下用户:
本脚本对接的是 CloudFlare ImgBed 的上传接口。
根据官方文档,真正的上传端点是 /upload,请求方式为 POST,请求体类型为 multipart/form-data,上传文件的字段名为 file。 [cfbed.sanyue.de]
CloudFlare ImgBed 的上传认证支持两种方式:
authCode 作为查询参数传递Authorization 请求头传递(支持 Bearer YOUR_API_TOKEN 写法) [cfbed.sanyue.de]上传接口还支持多个查询参数,例如:
uploadChannelchannelNameuploadFolderuploadNameTypereturnFormatautoRetryserverCompress。 [cfbed.sanyue.de]CloudFlare ImgBed 的功能文档还说明其 API 支持跨域访问,并具备上传认证、域名白名单、IP 黑名单、权限控制等安全能力。
在任意网页图片上点击右键后,脚本会记录当前图片。
随后可通过用户脚本菜单执行“上传当前选中图片”。
适合喜欢稳定、明确操作流程的用户。
当鼠标悬停到尺寸较大的图片上时,脚本会在图片右上角附近显示一个 “上传” 按钮。
点击该按钮即可直接上传当前图片。
这使得脚本兼顾了:
脚本支持为不同的网址规则配置不同的 uploadFolder。
例如:
forum_uploadsblog_imagesdocs_assets如果当前页面未命中任何网址规则,则会回退到全局默认 uploadFolder。
上传成功后,脚本会自动复制输出结果到剪贴板。
支持以下复制模式:
urlmarkdownhtml便于你直接粘贴到论坛、Markdown 编辑器或网页源码中。
相比传统的重 UI 脚本,本脚本没有使用:
因此对大多数网站的性能影响更低,适合长期启用。
在使用本脚本前,你需要准备:
脚本内部包含以下主要配置项。
baseUrlCFBed 实例地址,例如:
https://cfbed.sanyue.de
注意:
这里填写的是站点基础地址,脚本会自动向 /upload 发起上传请求。
根据官方文档,真正上传接口是 /upload,不是文档页面。 [cfbed.sanyue.de]
apiTokenCloudFlare ImgBed 的 API Token。
根据官方 API 总览,API Token 需要在后台管理面板生成,并在调用时通过 Authorization 请求头传递。
authCode 建议优先使用上传认证码(上传密码也就是登录密码(上传界面登录密码))。
根据官方上传文档,authCode 可作为查询参数使用,是 API Token 之外的另一种认证方式。 [cfbed.sanyue.de]
uploadChannel上传通道。
CloudFlare ImgBed 文档列出的可选值包括:
telegramcfr2s3discordhuggingface。 [cfbed.sanyue.de]channelName指定多通道场景下的具体通道名。
当服务端配置了多个同类上传通道时,可通过该参数选择目标通道。 [cfbed.sanyue.de]
uploadFolder全局默认上传目录。
例如:
images/forum
如果当前页面命中了站点规则,那么脚本会优先使用站点规则中的 folder,否则使用这里的默认值。
uploadNameType文件命名方式。
CloudFlare ImgBed 文档支持:
defaultindexoriginshort。 [cfbed.sanyue.de]returnFormat返回链接格式。
官方文档说明可选:
defaultfull其中 full 表示请求返回完整链接格式,更方便前端脚本直接使用。 [cfbed.sanyue.de]
autoRetry上传失败时是否自动切换通道重试。
该参数是官方上传接口支持的查询参数之一。 [cfbed.sanyue.de]
serverCompress服务端压缩开关。
官方文档说明该参数主要针对 Telegram 渠道的图片文件。 [cfbed.sanyue.de]
timeoutMs网络请求超时时间,单位毫秒。
用于下载原图和上传目标图床时的超时控制。
copyMode复制结果格式,可选:
urlmarkdownhtml用于控制上传成功后复制到剪贴板的内容格式。
脚本支持针对不同网址自动匹配不同上传目录。
例如你可以配置:
[
{ "pattern": "https://forum.example.com/*", "folder": "forum_uploads" },
{ "pattern": "https://blog.example.com/*", "folder": "blog_images" }
]
pattern 匹配时,使用对应 folderuploadFolder规则支持 * 通配符。
例如:
https://forum.example.com/*
表示匹配该站点下所有页面。
当鼠标移入某张图片时,若该图片满足最小尺寸要求,脚本会在图片右上角附近显示一个共享浮动按钮。
为了避免性能问题,脚本并不会给每张图片都插入一个按钮。
而是始终只维护 一个共享的浮动按钮:
这样既保留了“点击即上传”的体验,又避免了给整页图片插大量 DOM 的开销。
悬停按钮是新增的快捷方式,不会替代右键菜单上传。
你仍然可以继续使用:
脚本菜单中可使用:
使用后可为当前站点快速建立一条规则,例如:
https://当前域名/*
并指定对应目录名。
脚本菜单中可使用:
通过 JSON 形式维护所有网址规则,适合高级用户统一管理。
脚本的大致工作流程如下:
Blobmultipart/form-data 方式上传至 CFBed 的 /upload根据官方文档,上传请求的核心要求是:
POST /uploadmultipart/form-datafile 字段authCode 或 Authorization。 [cfbed.sanyue.de]脚本通常需要以下权限:
GM_xmlhttpRequestGM_getValueGM_setValueGM_setClipboardGM_registerMenuCommand这些权限分别用于:
CloudFlare ImgBed 的接口本身是带权限控制的。
官方文档说明上传需要有效的 API Token 或 authCode。 [cfbed.sanyue.de]
同时,功能文档提到系统可能启用:
因此,如果你在脚本中遇到 403,通常应优先检查:
apiToken 或 authCode 公开分享CloudFlare ImgBed 的文档示例响应通常类似:
[
{ "src": "/file/abc123_image.jpg" }
]
脚本会优先尝试解析:
[0].srcdata[0].srcsrc如果返回的是相对路径,则会自动拼接成完整链接。
如果使用了 returnFormat=full,则服务端通常会返回更适合直接使用的完整链接格式。 [cfbed.sanyue.de]
本脚本支持处理常见的图片来源类型:
例如:
https://example.com/image.jpg
data: URL例如页面内嵌的 Base64 图片。
blob: URL例如由页面脚本动态生成的图片资源。
不过需要注意,某些站点对图片本身会有额外保护,例如:
如果原图无法被浏览器上下文或用户脚本成功读取,那么上传也会失败。
当前脚本一般包含如下菜单:
上传当前选中图片上传最近一次右键或悬停定位到的图片。
设置 CFBed 参数设置基础上传参数,例如:
baseUrlapiTokenauthCodeuploadFoldercopyMode为当前站点设置 uploadFolder快速为当前网站建立目录规则。
管理站点规则(JSON)批量编辑网址规则。
查看当前配置通过 toast 查看当前生效的主要参数。
清除配置清空本地保存的脚本配置。
最常见原因包括:
CloudFlare ImgBed 官方文档明确说明上传需要认证,且具备多种安全控制能力。 [cfbed.sanyue.de]
curl 可以?这通常说明问题更可能出在:
Authorization 请求头引发的预检而不是上传接口本身完全不可用。
CloudFlare ImgBed 功能文档说明 API 支持跨域访问,但具体实例是否额外叠加 WAF / 白名单 / 来源规则,还要看实际部署配置。
通常是因为:
<img>脚本会尝试从常见结构中解析链接,但不同部署实例的返回格式可能略有差异。
CloudFlare ImgBed 文档中常见返回结构是 src 字段。 [cfbed.sanyue.de]
如果你遇到此问题,可以检查服务端响应内容,确认返回 JSON 结构是否符合预期。
可能原因包括:
uploadFolder,如需更复杂的按站点参数切换,可继续扩展