memos/web/src
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
..
components feat(attachment): upload files in resumable chunks 2026-09-08 21:07:06 +08:00
contexts feat(memos): support moving memos between spaces (#6285) 2026-09-07 20:45:59 +08:00
hooks feat(spaces): support custom icons and emoji (#6287) 2026-09-07 23:12:18 +08:00
layouts feat(spaces): add space-aware UI and filtering (#6230) 2026-08-24 23:13:55 +08:00
lib feat(spaces): support custom icons and emoji (#6287) 2026-09-07 23:12:18 +08:00
locales feat(spaces): support custom icons and emoji (#6287) 2026-09-07 23:12:18 +08:00
pages feat(memos): support moving memos between spaces (#6285) 2026-09-07 20:45:59 +08:00
router feat(web): scope Spaces by URL path instead of a remembered selection 2026-09-07 09:29:50 +08:00
themes
types feat(attachment): upload files in resumable chunks 2026-09-08 21:07:06 +08:00
utils chore(editor): name the commit action by host and surface its shortcut 2026-09-05 10:19:22 +08:00
App.tsx fix(web): correct RTL layout behavior (#6215) 2026-08-19 21:14:51 +08:00
auth-state.ts
connect.ts feat(spaces): add space-aware UI and filtering (#6230) 2026-08-24 23:13:55 +08:00
i18n.ts feat(i18n): add Azerbaijani language support (#6278) 2026-09-06 22:52:59 +08:00
index.css fix(map): restore keyless OpenStreetMap tiles (#6242) 2026-08-28 22:41:36 +08:00
main.tsx