SHA256
НЕ ПРОВЕРЕНО: откат DM-вложений, оставлены ревизии и удаление
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Черновик будущих вложений в DM
|
||||
|
||||
## Важно
|
||||
|
||||
Этот документ описывает только ранний черновик идеи.
|
||||
|
||||
Сейчас в проекте **нет** поддержки вложений в личных сообщениях:
|
||||
|
||||
- в реализованном формате `SHiNE_DM` поле `attachmentsCount` пока всегда должно быть `0`;
|
||||
- UI не показывает кнопку прикрепления файлов;
|
||||
- сервер не принимает upload файлов для DM;
|
||||
- сервер не раздаёт специальные DM-файлы по отдельным endpoints;
|
||||
- сервер не хранит отдельные файловые связи для личных сообщений.
|
||||
|
||||
Этот документ нужен только для того, чтобы рядом с актуальной документацией было явно видно:
|
||||
|
||||
- какие идеи обсуждались;
|
||||
- что это **не реализовано**;
|
||||
- что формат, хранение и способ загрузки потом могут сильно измениться.
|
||||
|
||||
## Что обсуждалось
|
||||
|
||||
Рассматривался такой общий подход:
|
||||
|
||||
- у контентного DM есть внешний список вложений;
|
||||
- во внешнем формате лежат только технические данные;
|
||||
- человекочитаемые данные о файле живут внутри зашифрованного тела сообщения;
|
||||
- один и тот же blob-файл теоретически мог бы переиспользоваться в нескольких сообщениях.
|
||||
|
||||
Черновой вариант внешнего списка:
|
||||
|
||||
- `attachmentsCount`
|
||||
- далее для каждого вложения:
|
||||
- `encFileHashSHA256` (`32 bytes`)
|
||||
- `encFileSize` (`u64`)
|
||||
|
||||
Черновой вариант внутреннего маркера в тексте:
|
||||
|
||||
```text
|
||||
<<file:file-format(1.0):type|fileName|origSize|origHashB64u|encHashB64u|encSize|keyB64u|nonceB64u>>
|
||||
```
|
||||
|
||||
Где обсуждались поля:
|
||||
|
||||
- `type`
|
||||
- `fileName`
|
||||
- `origSize`
|
||||
- `origHashB64u`
|
||||
- `encHashB64u`
|
||||
- `encSize`
|
||||
- `keyB64u`
|
||||
- `nonceB64u`
|
||||
|
||||
## Что может измениться
|
||||
|
||||
В будущем могут измениться любые части идеи:
|
||||
|
||||
- сам бинарный формат;
|
||||
- способ привязки файлов к сообщению;
|
||||
- момент загрузки файла относительно отправки сообщения;
|
||||
- серверное хранение blob-файлов;
|
||||
- права доступа к скачиванию;
|
||||
- способ рендера вложения в UI.
|
||||
|
||||
Именно поэтому этот файл не надо воспринимать как актуальную спецификацию.
|
||||
|
||||
## Источник истины на сейчас
|
||||
|
||||
Актуальное состояние личных сообщений описано только в:
|
||||
|
||||
- `Dev_Docs/Personal_Messages/README.md`
|
||||
|
||||
Если между этим черновиком и основным README есть расхождение, верным считается `README.md`.
|
||||
Reference in New Issue
Block a user