cf前端直接上传

发布时间:2026/11/11 16:08:40

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/11/10 1:39:45

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

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

2026/11/11 16:04:53

电工证 正反转怎么练才不会挂科?考前押题全在这了

电工证 正反转怎么练才不会挂科?考前押题全在这了 实操考试心里没底怕挂科?特别是电工证正反转操作,一不小心就容易出错。别急,这篇文章能帮你理清思路,掌握实操关键点,搭配考前押题,助你顺利通过考核。 电工证正反转操作流程是怎么规定的?…

2026/11/11 16:04:53

天津特种工报考别被坑了!良心建议帮你避开这些坑

天津特种工报考别被坑了!良心建议帮你避开这些坑 不知道去哪报名怕被中介坑?天津特种工报考真的让人头大,中介鱼龙混杂、价格参差不齐,一不小心就花冤枉钱。今天我就从驻马店一家中小施工企业的老总角度,聊聊天津特种工报考那些事,给你几个 良心建议…

2026/11/11 16:04:53

小白报考电工证要多久官方回应实操考试考什么

小白报考电工证要多久官方回应实操考试考什么 急需特种作业证才能上岗找工作,这是很多想入行电工行业的新人最头疼的问题。官方回应明确指出,报考电工证不是一朝一夕的事,但也不是遥不可及。南阳卧龙区的不少转岗从业者已经成功转型,他们的经历告诉你,只…

2026/11/11 16:04:53

儋州特种工培训怎么搞?2026河南最新政策说清复审流程

儋州特种工培训怎么搞?2026河南最新政策说清复审流程 证书过期了不知道怎么复审延期?别慌,2026年河南最新政策明确要求特种作业证必须按时复审,否则将面临暂停执业甚至吊销证书的风险。如果你正在儋州办理特种工培训,或者正准备复审,这篇干货能…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/11 0:02:26

考低压电工证通过率考试真题与备考技巧

低压电工证通过率高不高?学历不高也能考,值不值得考? 你是不是总听说电工证能帮你找高薪工作,但又担心自己学历不够,考不上?其实,低压电工证考试门槛并没有你想象中那么高,关键是方法对不对。这篇文章就告诉你, 考低压电工证通过率到底有多高 ,…

2026/11/11 0:02:26

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名 你是不是也和我一样,刚毕业就听说低压电工证学时必须达标才能上岗?可一打听,发现报名机构五花八门,价格参差不齐, 不知道去哪报名怕被中介坑…

2026/11/10 20:08:15

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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