跳转到主要内容

标签: S3

  • 显式版本删除现在要求 DeleteObjectVersion

    发布于 发布注记

    发布安全IAMS3兼容性

    显式版本删除现在要求 DeleteObjectVersion

    发布状态: 此变更已在 pgsty/silo#104 中实现,对应 Issue #58。本文发布本身不代表 某个服务器版本、软件包、镜像或部署已经包含该变更。 SILO 现在按照请求实际执行的删除类型选择权限: 请求 所需权限 未携带 versionId s3:DeleteObject 版本 UUID s3:DeleteObjectVersion 显式 versionId=null s3:DeleteObjectVersion DeleteObjects 对每个 XML 条目独立应用映射 此前 …

    发布状态: 此变更已在 pgsty/silo#104 中实现,对应 Issue #58。本文发布本身不代表 某个服务器版本、软件包、镜像或部署已经包含该变更。 SILO 现在按照请求实际执行的删除类型选择权限: 请求 所需权限 未携带 versionId s3:DeleteObject 版本 UUID s3:DeleteObjectVersion 显式 versionId=null s3:DeleteObjectVersion DeleteObjects 对每个 XML 条目独立应用映射 此前 …

  • SILO 应该修复 ListMultipartUploads 吗?Issue #79 兼容性设计评审

    发布于 设计

    设计S3兼容性分段上传

    SILO 应该修复 ListMultipartUploads 吗?Issue #79 兼容性设计评审

    这是 SILO Issue #79 的问题说明、设计分析与决策记录。 截至 2026-08-30 的状态: 已确认的兼容性缺陷,目前只有设计提案。本文不代表服务端实现、发布产物、部署或生产验证已经完成。 建议: 把它作为有计划的 P1 兼容性项目修复,而不是给缓存打一个小补丁。如果项目决定不实现完整兼容,也应该明确拒绝无法正确处理的请求,不能返回一个看似成功、实际上没有遵守参数的响应。 范围: 通用 S3 存储桶的 ListMultipartUploads。本文不增加目录存储桶语义,也不处理 …

    这是 SILO Issue #79 的问题说明、设计分析与决策记录。 截至 2026-08-30 的状态: 已确认的兼容性缺陷,目前只有设计提案。本文不代表服务端实现、发布产物、部署或生产验证已经完成。 建议: 把它作为有计划的 P1 兼容性项目修复,而不是给缓存打一个小补丁。如果项目决定不实现完整兼容,也应该明确拒绝无法正确处理的请求,不能返回一个看似成功、实际上没有遵守参数的响应。 范围: 通用 S3 存储桶的 ListMultipartUploads。本文不增加目录存储桶语义,也不处理 …

  • 只读 Checksum 审计与可靠的 CLI 输出契约

    发布于 设计

    设计S3兼容性Checksummcli

    只读 Checksum 审计与可靠的 CLI 输出契约

    本文是 MCLI 只读 checksum 校验流程,以及发布审查中发现的 non-TTY 输出缺陷 pgsty/mc#5 的设计与实现记录。 状态: 已随 mcli 20260901 发布。命令经 pull request #8 与 #13 合入 main,在托管 CI 中针对真实 SILO 服务器验证, pgsty/mc#5 已关闭。把客户端打包进 Server 镜像仍是独立的后续门禁。 归属: pgsty/mc。 跟踪: pgsty/mc#5。 安全边界: 本命令只读校验,不负责修复。 太长 …

    本文是 MCLI 只读 checksum 校验流程,以及发布审查中发现的 non-TTY 输出缺陷 pgsty/mc#5 的设计与实现记录。 状态: 已随 mcli 20260901 发布。命令经 pull request #8 与 #13 合入 main,在托管 CI 中针对真实 SILO 服务器验证, pgsty/mc#5 已关闭。把客户端打包进 Server 镜像仍是独立的后续门禁。 归属: pgsty/mc。 跟踪: pgsty/mc#5。 安全边界: 本命令只读校验,不负责修复。 太长 …

  • 两把 SSE-C 密钥,一份 CopyObject 响应

    发布于 设计

    设计S3SSE-CChecksum兼容性

    两把 SSE-C 密钥,一份 CopyObject 响应

    本文记录 SILO 提交 e37b0134a 中的 CopyObject SSE-C checksum 响应修复。 截至 2026-08-28 的状态: 实现、加密与换钥测试、完整服务器套件、race、静态检查、构建和 Fable Max 独立验收均已完成。提交已在本地创建;push、远端 CI、merge、tag、软件包、镜像、部署和生产验证仍是独立门槛。 范围: 只处理目标对象提交成功后的 CopyObject XML 与 HTTP 响应。存储对象字节、checksum metadata、加 …

    本文记录 SILO 提交 e37b0134a 中的 CopyObject SSE-C checksum 响应修复。 截至 2026-08-28 的状态: 实现、加密与换钥测试、完整服务器套件、race、静态检查、构建和 Fable Max 独立验收均已完成。提交已在本地创建;push、远端 CI、merge、tag、软件包、镜像、部署和生产验证仍是独立门槛。 范围: 只处理目标对象提交成功后的 CopyObject XML 与 HTTP 响应。存储对象字节、checksum metadata、加 …

  • BadDigest、InvalidRequest 与 CompleteMultipartUpload 校验和契约

    发布于 设计

    设计S3兼容性校验和

    BadDigest、InvalidRequest 与 CompleteMultipartUpload 校验和契约

    本文是 SILO #48 的完整设计、调查与验证记录,同时划清它与相关问题 SILO #50 的决策边界。 状态: pgsty/silo#74 已合并为 590aeaa7d,pgsty/silo.pgsty.com#6 已合并为 9805dd7;对应变更完成完整本地验证、远端 CI 与独立 Opus 5 Max 验收。tag、release、package、image、deployment 与 production verification 仍是彼此独立、尚未完成的门槛。 2026-08-28 …

    本文是 SILO #48 的完整设计、调查与验证记录,同时划清它与相关问题 SILO #50 的决策边界。 状态: pgsty/silo#74 已合并为 590aeaa7d,pgsty/silo.pgsty.com#6 已合并为 9805dd7;对应变更完成完整本地验证、远端 CI 与独立 Opus 5 Max 验收。tag、release、package、image、deployment 与 production verification 仍是彼此独立、尚未完成的门槛。 2026-08-28 …

  • ListObjects 快捷路径不能把不存在的桶伪装成空桶

    发布于 设计

    设计S3兼容性ListObjects

    ListObjects 快捷路径不能把不存在的桶伪装成空桶

    本文是 SILO #32 与 PR #37 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #37 已更新为带 DCO sign-off 的 head e9c5340be,通过正式批准并合并为 49c8aeac4;#32 随后自动关闭。精确 PR head 的 DCO、VulnCheck 与六项 Go CI 全部通过,合并后 main 的 VulnCheck 与六项 Go CI 也全部通过。尚未验证任何 tag、软件包、容器镜像、部署或生产端点已经包含本修复。 …

    本文是 SILO #32 与 PR #37 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #37 已更新为带 DCO sign-off 的 head e9c5340be,通过正式批准并合并为 49c8aeac4;#32 随后自动关闭。精确 PR head 的 DCO、VulnCheck 与六项 Go CI 全部通过,合并后 main 的 VulnCheck 与六项 Go CI 也全部通过。尚未验证任何 tag、软件包、容器镜像、部署或生产端点已经包含本修复。 …

  • Conditional DELETE:为什么删除条件只能针对当前对象判断一次

    发布于 设计

    设计S3兼容性DELETE

    Conditional DELETE:为什么删除条件只能针对当前对象判断一次

    本文是 SILO PR #12 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #12 仍然 open,原 head 为 5b71a75e,落后最新 main 118 个提交。原提交没有 DCO sign-off,GitHub 上没有 check run。本文记录的改进方案已在独立本地 worktree 中实现、测试并完成两轮 review,但尚未提交、推送、合并或发布。 本轮范围: 正确实现单对象 DeleteObject 的 If-Match;同时在收到尚未 …

    本文是 SILO PR #12 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #12 仍然 open,原 head 为 5b71a75e,落后最新 main 118 个提交。原提交没有 DCO sign-off,GitHub 上没有 check run。本文记录的改进方案已在独立本地 worktree 中实现、测试并完成两轮 review,但尚未提交、推送、合并或发布。 本轮范围: 正确实现单对象 DeleteObject 的 If-Match;同时在收到尚未 …

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

    发布于 设计

    设计S3兼容性Checksum

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

    本文是 SILO #47 与 PR #57 的设计、评审与决策归档。 截至 2026-08-26 的状态: PR #57 已批准并合并为 a96116b1,#47 随后自动关闭。被测 PR head 的九个检查项全部通过,合并后 main 的 Go CI 与 VulnCheck 也全绿。尚未验证任何 tag、release package、container image、deployment 或 production endpoint 已包含本修复。 范围: 让 …

    本文是 SILO #47 与 PR #57 的设计、评审与决策归档。 截至 2026-08-26 的状态: PR #57 已批准并合并为 a96116b1,#47 随后自动关闭。被测 PR head 的九个检查项全部通过,合并后 main 的 Go CI 与 VulnCheck 也全绿。尚未验证任何 tag、release package、container image、deployment 或 production endpoint 已包含本修复。 范围: 让 …

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

    发布于 设计

    设计S3兼容性Checksum

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

    本文是 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 …