v2-platform: 03 R2/S3 storage provider + hardening + dual domains
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- aws, typescript
调研方向
先从 #274 中的 v2 平台服务规范和 #275 中的部署服务核心开始,然后跟踪此处描述的存储适配器接缝。检查 aws4fetch 集成,并将每项验收标准映射到实现或测试位置。完成的标准是 provider 满足上传、配额、流式传输、去重、域名、标头和凭据隔离标准。
由索引模型根据 Issue 内容生成。
描述
Parent
#274 (v2 platform services spec)
What to build
The real storage provider: S3-compatible PUTs (aws4fetch) with scoped, service-held tokens behind the storage adapter seam. Explicit content-type map and immutable cache-control on content-hashed paths (the failure mode that stalled the earlier Cloudflare attempt must be impossible). Day-one hardening: streaming (non-buffering) uploads, concurrency cap, per-account size and file-count quotas, MIME allowlist, robots noindex. Two serving domains: the member domain for account-namespaced uploads, the official domain for platform-account CI uploads through the same service — only the service ever holds CDN credentials.
Acceptance criteria
- Uploaded bundles are fetchable from the member domain with correct content-type and immutable cache-control headers (stylesheets serve as text/css)
- Re-uploading identical content dedupes (same content-hash path, no duplicate storage)
- Over-quota, over-count, disallowed-MIME, and concurrent-flood uploads are all rejected cleanly
- Uploads stream without buffering whole bundles in service memory
- Official-path uploads land under the platform account on the official domain through the same contract
- Member-domain responses carry noindex headers
- Scoped S3 tokens — no account-wide credentials in any plugin environment
Blocked by
- #275 (deploy service core)
- 主要语言
- TypeScript
- 星标
- 5
- 派生
- 4
- 平均合并
- 9 小时 58 分钟
- 30 天内合并 PR
- 212
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
NEARBuilders/everything-dev 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
NEARBuilders/everything-dev#696 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
NEARBuilders/everything-dev#686 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
NEARBuilders/everything-dev#678 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 77/100
NEARBuilders/everything-dev#628 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
NEARBuilders/everything-dev#400 ·
维护者通常 1 天内回复
查看 NEARBuilders/everything-dev 的全部 Issue
相似的 Issue
-
[fullsend] E2E: scorecard — filecheck GitLab entity metrics unavailable due to initialDelay timing未关闭e2e-failure ready-to-code
难度 2/5 1-3 小时 新手友好度 75/100
redhat-developer/rhdh-plugin-export-overlays#4698 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
devswha/herdr-web-ui#2884 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
b:minor bug
难度 2/5 1-3 小时 新手友好度 78/100
software-mansion/argent#1771 ·
维护者通常 1 天内回复
-
Resources: New palettes of Xiamen可能已有人在做 @rmt-svc 今天认领。 未关闭resources
难度 1/5 1-3 小时 新手友好度 74/100
railmapgen/rmg-palette#2491 ·
维护者通常 4 天内回复