- Ya
- 9 Agosti 2026, 17:57 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 3888d55
Forwarding a 2 GB video to three colleagues cost three full uploads. Storage deduplicated them into one object, but only after each transfer had completed and been thrown away — the member paid for every byte, three times, to produce a copy the platform already had. Two endpoints settle it before any bytes move. /attachments/probe answers whether a file of this size could exist at all, which is cheap and lets a client skip hashing for almost every genuinely new file. /attachments/link takes hashes the client computed itself and, when they resolve to stored content, creates the attachment outright; a 404 means 'never seen, upload it' and is an ordinary answer rather than a failure. The hashes are a claim, not an authorisation: they only ever resolve against content already stored within the caller's own dedup scope, and both endpoints require session membership like every other attachment route. Upload and link share one row-building path on purpose — whether the bytes travelled or were recognised, the attachment that lands in the conversation must be indistinguishable.