memos/proto/gen/api/v1/apiv1connect
boojack b3e67399b8 feat(attachment): upload files in resumable chunks
Add UploadAttachment, a unary RPC that accepts a file in bounded chunks
and streams it to a temp file instead of holding the whole blob in one
request body and in memory. A call carrying a spec starts an upload and
returns an opaque upload_id; later calls carry that id with
write_offset,
data, and finish_write, following the Cloud Storage WriteObject shape.
Retrying the last chunk after a lost response is idempotent, uploads are
bound to their owner, and they expire after 30 minutes of inactivity.

CreateAttachment and the chunked finalize now share one processing
pipeline for motion-photo detection, EXIF stripping, and storage. The
motion-photo detector works over an io.ReaderAt so large JPEGs are never
loaded whole, and the request body cap is a single per-procedure lookup.

The web editor uploads through the new RPC in 2 MiB chunks with bounded
concurrency under the server's per-user limit.
2026-09-08 21:07:06 +08:00
..
ai_service.connect.go feat(ai): add instance AI providers and transcription (#5829) 2026-04-12 19:23:34 +08:00
attachment_service.connect.go feat(attachment): upload files in resumable chunks 2026-09-08 21:07:06 +08:00
auth_service.connect.go refactor: user auth improvements (#5360) 2025-12-18 18:15:51 +08:00
idp_service.connect.go refactor: migrate to connect-rpc (#5338) 2025-12-11 19:49:07 +08:00
instance_service.connect.go chore: add batch get settings API 2026-05-09 09:30:28 +08:00
memo_service.connect.go feat(spaces): add multi-space memo collaboration (#6228) 2026-08-23 19:36:50 +08:00
memo_view_service.connect.go refactor(memo-views): replace shortcuts with saved views (#6167) 2026-08-09 20:27:27 +08:00
space_service.connect.go feat(spaces): add consent-based member invitations (#6232) 2026-08-25 23:21:19 +08:00
user_service.connect.go fix(api): align resource IDs with AIP conventions 2026-07-18 11:12:28 +08:00