cf前端直接上传

发布时间:2026/9/12 20:51:02

cf前端直接上传 之前是后端上传现在计划改前端直接传。使用直接创建者上传还无需中间存储桶也能省去相关的存储/流出成本参考文档Presigned URLs · Cloudflare R2 docshttps://developers.cloudflare.com/r2/api/s3/presigned-urls/ 有php版本sdkhttps://developers.cloudflare.com/r2/examples/aws/aws-sdk-php/#generate-presigned-urls生成秘钥地址https://developers.cloudflare.com/r2/api/tokens/示例代码Route::post(/upload/video/presign, [UploadController::class, videoPresign]);/*** 签发视频直传预签名 URL前端拿 upload_url 直接 PUT 到 R2文件不过服务端。** 入参filename必填、content_type、dir、expires*/public function videoPresign(Request $request): Response{return $this-run($request, function () use ($request): Response {$payload $this-readParams($request);$signed Container::get(UploadService::class)-createVideoUploadUrl([filename trim((string) ($payload[filename] ?? )),content_type trim((string) ($payload[content_type] ?? )),dir trim((string) ($payload[dir] ?? )),expires $payload[expires] ?? null,]);return success($signed, success);});}/*** JSON body 优先表单提交时回退到 post 参数。** return arraystring, mixed*/private function readParams(Request $request): array{if (str_contains(strtolower((string) $request-header(content-type, )), application/json)) {return $this-readPayload($request);}$post $request-post();return is_array($post) ? $post : [];}/*** 生成 Cloudflare R2 视频直传预签名 URL。** 后端只负责签发文件不经过服务端前端拿到 upload_url 后用 PUT 直传到 R2。** param arraystring, mixed $options 支持 filename / content_type / dir / expires* return arraystring, mixed*/public function createVideoUploadUrl(array $options []): array{$filename trim((string) ($options[filename] ?? ));if ($filename ) {throw ValidationException::single(filename, required, filename is required.);}$contentType $this-resolveVideoMimeType($options, $filename);$r2 $this-resolveR2Config($this-cloudflareConfig());$expires $this-resolveExpires($options, $r2);$key $this-buildVideoKey($options, $r2, $filename, $contentType);$objectUrl sprintf(https://%s/%s, $this-r2Host($r2), $key);$presigner new S3Presigner((string) $r2[access_key_id],(string) $r2[secret_access_key],trim((string) ($r2[region] ?? auto)) ?: auto);$requestTime new DateTimeImmutable(now, new DateTimeZone(UTC));$signedHeaders $this-shouldSignContentType($r2) ? [Content-Type $contentType] : [];$uploadUrl $presigner-presign(PUT, $objectUrl, $signedHeaders, $expires, $requestTime);return [upload_url $uploadUrl,method PUT,// 前端上传时必须原样带上这些请求头否则签名校验会失败。headers [Content-Type $contentType],key $key,url $this-resolveVideoReadUrl($presigner, $r2, $objectUrl, $key, $expires, $requestTime),expires_in $expires,expires_at gmdate(Y-m-d\TH:i:s\Z, (int) $requestTime-getTimestamp() $expires),];}方案 B:绑定自定义域名 video.com(生产推荐)当前 video.com 指向你的应用服务器需要修改 DNS把它指向 R2。步骤 1:R2 桶内绑定自定义域名1.Cloudflare 控制台→R2→桶 assets-video→Settings→Custom Domains2.点击Add custom domain3.输入域名:video.com4.选择:Enable public access(开启公开访问)5.Cloudflare 会给出 DNS 记录提示需要在域名 DNS 面板添加一条 CNAME 记录步骤 2:修改 DNS(关键!)域名 video.com的 DNS 记录:。删除原有 video.com 指向你应用的 A/AAAA 记录。新增一条 CNAME 记录:Name: videoType: CNAMETarget:你的桶ID.r2.cloudflarestorage.comTTL:自动注意:这个 CNAME 是 Cloudflare 提供的不要填 IP。步骤 3:等待 DNS 生效(几分钟~半小时)等待 SSL 证书自动颁发完成。步骤 4:设置环境变量env ^句R2 PUBLIC URLhttps://video.com播放地址格式plaintext印 、7https://video.com/videos/abc123.mp4这条链路是这样的你手动加的 CNAMEupsell → bucket.r2.cloudflarestorage.com✅ 已生效DNS 查询确认但 R2 的 S3 端点只认在「桶 → Custom Domains」里注册过的域名。没注册的话R2 不认识 Host: video.com 这个请求结果Cloudflare 边缘收到请求后按 zone 的常规路由走CF-RAY ...-LAX 证明到了 Cloudflare最终落到你的 Ouyify 应用返回了那个 1972 字节的 404 HTML结论手动 CNAME 方式对 R2 是无效的必须在桶的 Custom Domains 功能里完成绑定——它会自动创建特殊的 DNS 记录不需要你手动加、签发证书、并注册路由。
延伸阅读

更多相关文章

2026/9/12 20:51:02

空压机轻量化智能运维:如何用小程序实现设备在线与能耗管控

不知道你有没有进过空压机房。一开门热浪裹着油味扑面而来,几台大铁箱轰隆隆响到两人说话得靠吼。这两年我一直在做工业设备侧的数字化落地,见得最多的就是空压机房这种“重要但没人管”的现场。空压机是工厂的动力心脏,但它的运维几乎是最传…

2026/9/12 21:56:07

YOLOv5交通标志检测:从数据集到部署的全流程实战解析

简介:基于YOLOv5的交通标志物检测完整项目,主要面向正在准备课程设计、期末大作业的计算机专业学生,以及希望上手目标检测实战的深度学习学习者。项目包含全部开发源码、已经训练完成的权重模型与完整的训练测试数据,环境依赖配置…

2026/9/12 21:56:07

树莓派Pico呼吸灯实战:MicroPython+PWM精准控光

1. 项目概述:为什么一个呼吸灯值得你花20分钟认真对待树莓派 Pico、MicroPython、PWM、LED——这四个词凑在一起,不是教科书里的抽象概念,而是我去年帮朋友调试智能台灯时,真正焊在面包板上、烧进芯片里、肉眼可见亮起来的第一块“…

2026/9/12 21:56:07

YOLOv5交通标志检测:从数据预处理到ONNX部署完整指南

简介:YOLOv5交通标志物检测完整工程包,面向计算机相关专业正在准备课程设计、期末大作业的学生,以及需要完整项目进行实战练习的深度学习学习者。项目以YOLOv5为检测框架,整合了源代码、训练好的权重模型、标注数据与训练配置&…

2026/9/12 21:56:07

Layui按钮级权限控制实战:从权限码设计到前端显隐方案

1. 需求来源与整体设计思路1.1 为什么后台管理系统必须做按钮级权限控制我最早接触layui的时候,其实也不太理解按钮权限这回事。菜单权限好理解,不同角色看到不同菜单,侧边栏渲染出来就不一样。但按钮权限是个更细的维度——同样是“编辑”按…

2026/9/12 21:51:07

Java智慧养老平台代码实战:工单闭环、Redis防抖与高并发优化

简介:一套基于SpringBoot的智慧养老平台完整Java源码,面向计算机、电子信息工程等专业学习者,适合作为毕业设计、课程设计及期末大作业。系统采用B/S架构与MVC模式,整合SpringBoot、Mybatis、Ajax、Vue等技术栈,覆盖前…

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/12 10:09:03

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码