豫言 / 豫言操作系统命名持久服务适配 @ 0.3.0
以授权云工命名持久对象实现文字请求、流式请求与入站转发。
说明.汉语.md
# 云工命名持久服务适配 先按 `DO` 许可检查绑定,再按对象名称取得该绑定中的 Durable Object;请求路径、查询、方法和有限标头由豫言值提供。适配使用平台的 `getByName`、`fetch` 与 URLSearchParams,读取有限文字响应(0.2.0 起上限 8 MiB),只返回状态、正文和四种明确允许的响应头。 0.2.0 新增流式响应、增量读取与转发入站请求,全部用豫言写在云工宿主库之上,不增加宿主 JavaScript: - 文字版改用与流式版同一套请求与读取机制:POST 正文经字节句柄交给 `Request`,响应经“读取状态表”有限整读(先看 `Content-Length`,超限抛豫言异常),对象抛错成为可捕获的豫言异常。 - 流式版 `请求命名持久服务流` 在对象的 `fetch` 上挂 `AbortSignal.timeout`,发请求后经 `云工请求候回应安全` 等待响应头;读取、取消、句柄卫生与授权服务适配相同。 - 转发入站请求:`new Headers(入站 headers)` 复制后按白名单删去其余标头(入站标头值不经过豫言字符串),加固定标头;POST 时把入站请求的 `body` 流交给新 `Request`(`duplex: half`,`redirect: manual`);对象的响应经 `云工设置响应句柄` 原样成为最终响应。入站正文已读取或上锁时先抛豫言异常。 0.3.0 只放宽对象名称字符集:`有效对象字` 增加斜线,使既有的 `账户编号/项目编号` 名称(云工作台项目对象)可被按原名定位;名称仍只交给 `getByName`,不参与任何路径拼接,其余校验不变。 一致性验证见 `一致性验证/`。
说明.文言.md
# 云工命名持久服务适配 先循 `DO` 许可核绑定,乃按对象名取其内 Durable Object;径、查询、法与有限头悉由豫言值授。适配用平台 `getByName`、`fetch`、URLSearchParams,读有限文答(〇点二起上限八 MiB),惟返状态、正文与明许之四种答头。 〇点二增流答、渐读与转入站请,悉以豫言书于云工宿主库之上,不增宿主 JavaScript: - 文字术今与流术共用同一请与读之机:POST 正文以字节柄授 `Request`,答经“读势之表”有限整读(先观 `Content-Length`,逾限告豫言异常),对象抛错成为可捕之豫言异常。 - 流术 `请求命名持久服务流` 于对象之 `fetch` 挂 `AbortSignal.timeout`,发请后经 `云工请求候回应安全` 候答头;读、止、句柄之洁与授权服务适配同。 - 转入站请:以 `new Headers(入站 headers)` 复制,乃按白名删余头(入站头值不经豫言之字符串),加定头;POST 则以入站请之 `body` 流授新 `Request`(`duplex: half`,`redirect: manual`);对象之答经 `云工设置响应句柄` 原样为终答。入站正文已读或已锁则先告豫言异常。 〇点三惟宽对象名之字集:`有效对象字` 增斜线,使旧有之“户号/项目号”名(云工作台之项目对象)得依原名而定;名仍惟授 `getByName`,不参与拼径,余验不变。 一致之验见 `一致性验证/`。