跳转到主要内容

设计归档

这里归档 SILO 维护决策背后的完整思考:要解决的问题、兼容性边界、被否决的方案、实现要求,以及进入发布版本前必须取得的验证证据。

  • 为什么 CompleteMultipartUpload 必须返回 ChecksumType:PR #57 评审记录

    发布于 设计

    设计S3兼容性Checksum

    本文是 SILO #47 与 PR #57 的设计、评审与决策归档。 截至 2026-08-26 的状态: PR #57 仍然 open,当前可干净合并。代码评审结论为 GO WITH NON-BLOCKING NOTES,置信度 high。四组 fork workflow 仍在等待 maintainer 批准,因此 PR 尚未合并,也没有任何 release artifact 包含该修改。 范围: 让 CompleteMultipartUploadResult 返回服务器已经知道的 …

    本文是 SILO #47 与 PR #57 的设计、评审与决策归档。 截至 2026-08-26 的状态: PR #57 仍然 open,当前可干净合并。代码评审结论为 GO WITH NON-BLOCKING NOTES,置信度 high。四组 fork workflow 仍在等待 maintainer 批准,因此 PR 尚未合并,也没有任何 release artifact 包含该修改。 范围: 让 CompleteMultipartUploadResult 返回服务器已经知道的 …

  • 可选校验和,强制失败:修复 UploadPart 与 UploadPartCopy 兼容性

    发布于 设计

    设计S3兼容性Checksum

    本文是 SILO #46 的完整设计与实现归档。它记录的并不只是一个 if 条件如何修改,而是一个看似简单的 S3 可选 header,如何一路牵动 multipart 完成语义、复制响应、压缩与加密数据流、兼容基线和发布验证。 状态: 服务端实现与本地验证完成;commit、PR、远端 CI、发布与线上验证待完成。 归属: pgsty/silo 服务端仓库。 跟踪: #46。 独立后续: #63 CopyObject + compression checksum、#64 federated …

    本文是 SILO #46 的完整设计与实现归档。它记录的并不只是一个 if 条件如何修改,而是一个看似简单的 S3 可选 header,如何一路牵动 multipart 完成语义、复制响应、压缩与加密数据流、兼容基线和发布验证。 状态: 服务端实现与本地验证完成;commit、PR、远端 CI、发布与线上验证待完成。 归属: pgsty/silo 服务端仓库。 跟踪: #46。 独立后续: #63 CopyObject + compression checksum、#64 federated …

  • 总量未知时,进度条应该说什么

    发布于 设计

    设计Console下载

    状态:已在本地实现并验证;提交、Console 发布与 Silo 依赖更新待办 · 优先级:P1 · 归属:pgsty/silo-console · 关联问题:pgsty/silo#62 · PRD 复核:Claude Fable 5(xhigh)— APPROVE · 实现复核:Claude Fable 5(xhigh),2026-08-23 — APPROVE,无 P0/P1/P2 发现 SILO Console 下载文件夹时,Downloads / Uploads 面板会显示 …

    状态:已在本地实现并验证;提交、Console 发布与 Silo 依赖更新待办 · 优先级:P1 · 归属:pgsty/silo-console · 关联问题:pgsty/silo#62 · PRD 复核:Claude Fable 5(xhigh)— APPROVE · 实现复核:Claude Fable 5(xhigh),2026-08-23 — APPROVE,无 P0/P1/P2 发现 SILO Console 下载文件夹时,Downloads / Uploads 面板会显示 …

  • 数据库通知统一连接串:#53 的兼容性边界

    发布于 设计

    设计通知兼容性

    本文是 SILO #53 的产品需求文档与最终设计归档,记录 PostgreSQL/MySQL 桶通知目标的兼容性边界、实现结果与验证证据。 最终决策 SILO 保留 PostgreSQL 与 MySQL notification target,但每种数据库只支持一种当前配置方式: PostgreSQL 必须提供完整的 connection_string; MySQL 必须提供完整的 dsn_string。 旧的五字段形式 …

    本文是 SILO #53 的产品需求文档与最终设计归档,记录 PostgreSQL/MySQL 桶通知目标的兼容性边界、实现结果与验证证据。 最终决策 SILO 保留 PostgreSQL 与 MySQL notification target,但每种数据库只支持一种当前配置方式: PostgreSQL 必须提供完整的 connection_string; MySQL 必须提供完整的 dsn_string。 旧的五字段形式 …

  • 只预览文本,绝不执行:SILO Console 文本预览 PRD

    发布于 设计

    设计Console预览安全

    状态: 设计已接受,实现待完成 · 归属: pgsty/silo-console · 跟踪: pgsty/silo#17 · 审阅: 产品、安全与前端架构三方共识 SILO Console 可以预览图片、PDF、音频和视频,却不能直接查看运维中最常见的小型日志、纯文本、JSON 与 XML。即使对象保存了完全正确的 Content-Type,前端也会在选择渲染器之前把它判为不支持。 恢复旧版浏览器原生预览很容易,却不是正确修复。对象内容由上传者控制;如果把它作为同源 HTML/XML 文档加载 …

    状态: 设计已接受,实现待完成 · 归属: pgsty/silo-console · 跟踪: pgsty/silo#17 · 审阅: 产品、安全与前端架构三方共识 SILO Console 可以预览图片、PDF、音频和视频,却不能直接查看运维中最常见的小型日志、纯文本、JSON 与 XML。即使对象保存了完全正确的 Content-Type,前端也会在选择渲染器之前把它判为不支持。 恢复旧版浏览器原生预览很容易,却不是正确修复。对象内容由上传者控制;如果把它作为同源 HTML/XML 文档加载 …