尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Cloudflare Computer上传管道详解:base32、MIME识别与SigV4签名三件套完整指南
Cloudflare Computer上传管道详解base32、MIME识别与SigV4签名三件套完整指南【免费下载链接】computerGive your agent a computer 项目地址: https://gitcode.com/GitHub_Trending/computer1/computerCloudflare Computer是让 AI Agent 拥有一台电脑的开源项目它把持久化虚拟文件系统装进 Durable Object并让 Agent 能把生成的图表、截图、构建产物一键变成可分享的限时链接。本文详解这条上传管道背后的三件套——base32 随机密钥、MIME 类型识别与SigV4 预签名 URL带你快速看懂它如何在不暴露存储桶的前提下安全地分享文件。上传管道能做什么一次 share 调用核心入口是 index.ts 中的createAssets它一次性绑定工作区Workspace和 R2 存储桶之后每次调用share(path, opts)就会完成三件事把虚拟文件系统里的文件流式上传到 R2 对象存储为对象写入Content-Type、Content-Disposition等元数据返回一个限时有效的预签名 GET URL谁拿到链接谁就能下载直到过期。 典型场景Agent 在沙箱里跑出一张图表调用一次分享接口就把 URL 丢进聊天消息——存储桶名、凭证、工作区目录结构全程不外泄。第一件base32 生成唯一且短的资源密钥为什么不用 UUID上传时每个对象需要一个 key对象在桶里的文件名。如果直接用 UUID是 36 个带连字符的字符而 base32.ts 采用Crockford base32 编码把 16 字节随机数压成约 26 个纯小写字母数字更短、URL 安全、无歧义字母表去掉了易混的 I、L、O、U。资源密钥的命名规则密钥格式在 upload.ts 中定义prefix/id/文件名id每次调用都重新生成同一个文件分享两次会得到两个不同的 key互不覆盖两条链接各自独立只落 basename分享/workspace/secret/plans/q3.pdf只会生成prefix/id/q3.pdf目录结构永远留在工作区内路径保持私密。解码时还对大小写和易混字母做了兼容如O→0、I/L→1即使人工转录过 token 也能还原。第二件MIME 识别给文件标上正确的 Content-Type轻量查表不拖慢体积mime.ts 内置了一张迷你扩展名 → 类型表图片png/jpg/webp/avif、文本代码md/csv/json/yaml、文档pdf、压缩包zip/gz/tar和音视频mp4/mp3/wav共 30 余项——刚好覆盖 Agent 最常分享的文件类型避免把上百条目的 MIME 大数据库打进 bundle。识别规则很简单取文件名最后一个.之后的扩展名忽略大小写去查表查不到就回退到application/octet-stream。两个可以覆盖的默认值contentType选项调用方更懂业务时可强制指定类型永远优先于查表结果dispositioninline默认浏览器直接渲染适合图片/PDF或attachment强制下载文件名还支持 RFC 5987 的filename*编码中文等 Unicode 文件名也能正确还原。第三件SigV4 签名造出限时可访问的 URL不引依赖自己实现预签名sigv4.ts 实现了一个极简版 AWS Signature Version 4query-string 预签名风格只保留 R2 的 S3 兼容端点所需的 presigned-GET 路径整个算法就是几轮 HMAC-SHA256 套在确定性字符串上规范化请求 → 待签名串 → 签名密钥按 日期/区域/服务 逐层派生→ 最终签名拼进 URL 查询参数GET 请求的负载标记为UNSIGNED-PAYLOAD不读取也不哈希文件内容URL 纯粹是输入与时间的函数生成零成本有效期expiresIn由调用方毫秒数换算而来上限 7 天AWS/R2 的预签名最长寿命。 安全设计R2 的 binding 本身不能签发 URL所以要额外提供 API token 的 access/secret key缺凭证时createAssets会在启动时报出具体缺哪个值而不是事后抛一个看不懂的 403。为大文件准备的流式哈希模块还保留了一个sha256HexStream对ReadableStream增量哈希内存里永远只有一块数据多 GB 的文件也能常空间算完——为将来直接签名上传负载留了后路。三件如何配合一次 share 的完整流程生成 keyrandomId()产出 base32 token拼上规范化后的 prefix 与文件名推断类型查 MIME 表或用你传入的contentType连同 Content-Disposition 一起准备元数据流式上传R2 要求已知长度的流所以 VFS 读出的流会被包进FixedLengthStream长度来自fs.stat边读边传全程不缓冲失败时通过 AbortController 干净地中断管道写入自定义元数据源路径、会话 ID、过期时间戳方便日后按 R2 生命周期规则或元数据清理对象签发链接调用presignUrl把带签名的 GET URL 返回给调用方。官方设计文档在 14_assets_interface.md里面有完整的选项表和配置对照环境变量回退顺序R2_ACCESS_KEY_ID→AWS_ACCESS_KEY_ID等。快速上手让 Agent 自己发链接管道已经以两种形态开箱即用AI 工具publish.ts 提供publish工具Agent 传入工作区路径可选有效期默认 1 小时直接拿回限时 URLShell 命令worker backend 的 just-bash 环境里可执行assets publish path [expiry]链接直接写到 stdout支持ms/s/m/h后缀。小结组件职责关键词亮点base32生成 26 字符短随机密钥唯一、URL 安全、路径私密MIME按扩展名推断 Content-Type轻量查表、可覆盖SigV4签发限时预签名 URL零依赖、UNSIGNED-PAYLOAD、7 天上限三者各司其职让 Cloudflare Computer 的上传管道在流式零缓冲的前提下完成了从沙箱里的一个文件到任何人都能打开的限时链接的全部工作。【免费下载链接】computerGive your agent a computer 项目地址: https://gitcode.com/GitHub_Trending/computer1/computer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

程序员高考卷:一份覆盖算法、代码评审与隐写的工程实践自测题

程序员高考卷:一份覆盖算法、代码评审与隐写的工程实践自测题

2020年高考延期到七月,那几天我的朋友圈被各种“全国卷”刷了屏,数学、语文、理综,人人都在回忆青春。直到有人转发了一张P出来的“2020全国统一高考卷-程序员卷”,我盯着看了五分钟,越看越觉得可惜——图里只有“考生…

📅 2026/11/1 4:44:20
机器学习实战:从数据预处理到模型评估的完整流程解析

机器学习实战:从数据预处理到模型评估的完整流程解析

简介:本资源是天津大学《机器学习算法与应用》课程大作业的完整实现,面向机器学习初学者与高校学生,聚焦小麦种子品种识别这一典型多分类任务,系统探究数据预处理对分类与聚类性能的影响。项目基于UCI Seeds数据集,涵盖…

📅 2026/9/8 1:16:37
Java大厂面试全流程拆解:校招社招考点与备战指南

Java大厂面试全流程拆解:校招社招考点与备战指南

作为一个在 Java 这个坑里摸爬滚打了快十年的老程序员,我太懂现在准备大厂面试的兄弟们是什么状态了。尤其是每年 9 月这个节点,秋招正式批打响,社招的岗位也放出来一批,网上信息又多又杂,真正能落地的、能把流程讲清楚…

📅 2026/10/18 15:09:14
MORE NEWS

更多资讯

📰

启动报Port 8088 was already in use?先查是谁占的

启动报Port 8088 was already in use?先查是谁占的 项目启动报 Port 8088 was already in use,意思很直白:这个端口已经有人占了。 先说原理:端口是"门牌号",一间房只住一个进程 端口就是一台机器上的门牌号…

📰

担心文档上云?本地运行的办公AI才敢放心用

单位上周开了个会,主题是"AI 提效",散会时领导补了一句:涉及客户资料的文档,不许往云端传。这话一出,会议室里本来跃跃欲试的同事全蔫了——大家平时用的那些在线 AI,文档一上传就不知道存哪儿去…

📰

先能用,再好用:从烂尾复盘到两周上线,全栈项目的‘原型—快速迭代‘方法论

先能用,再好用:从烂尾复盘到两周上线,全栈项目的“原型—快速迭代”方法论 全栈学习路径的文章已经很多了:怎么选技术栈、怎么搭环境、怎么记文档,几乎每个方向都有人写。但一个更扎心的问题很少有人正面讨论——为什…

📰

深度思考模式把 ARC-AGI-2 从 17.6% 拉到 45.1%:对照 Gemini 3 Pro 的三份能力评测,看‘会思考‘改写了哪些边界

深度思考模式把 ARC-AGI-2 从 17.6% 拉到 45.1%:对照 Gemini 3 Pro 的三份能力评测,看“会思考”改写了哪些边界 一、先说结论:变强的不是“知识”,而是“解法” 每次新模型发布,评测榜单都会涨几个点,大…

📰

1.c++入门篇

1.c中的关键字asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestaticunionwchar_tcatchexplicitnamespacestatic_castunsigneddefaultcharexportnewstructusingfriendclassext…

📰

《江灯合声》:有可行的分框版,也仍可以选择连续鸣谢

武汉江岸区栎坡合唱团在免费节目册《江灯合声》中,以表格集中鸣谢资助者。各家共同要求改为独立小框,团里仍想保留表格。现有全名与支持事项清楚可见,双方此前未承诺具体排版。我支持保留表格。补充的试排材料让选择更具体:分框能…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬