3.3 KiB
3.3 KiB
Черновик будущих вложений в DM
Важно
Этот документ описывает только ранний черновик идеи.
Сейчас в проекте нет поддержки вложений в личных сообщениях:
- в реализованном формате
SHiNE_DMполеattachmentsCountпока всегда должно быть0; - UI не показывает кнопку прикрепления файлов;
- сервер не принимает upload файлов для DM;
- сервер не раздаёт специальные DM-файлы по отдельным endpoints;
- сервер не хранит отдельные файловые связи для личных сообщений.
Этот документ нужен только для того, чтобы рядом с актуальной документацией было явно видно:
- какие идеи обсуждались;
- что это не реализовано;
- что формат, хранение и способ загрузки потом могут сильно измениться.
Что обсуждалось
Рассматривался такой общий подход:
- у контентного DM есть внешний список вложений;
- во внешнем формате лежат только технические данные;
- человекочитаемые данные о файле живут внутри зашифрованного тела сообщения;
- один и тот же blob-файл теоретически мог бы переиспользоваться в нескольких сообщениях.
Черновой вариант внешнего списка:
attachmentsCount- далее для каждого вложения:
encFileHashSHA256(32 bytes)encFileSize(u64)
Черновой вариант внутреннего маркера в тексте:
<<file:file-format(1.0):type|fileName|origSize|origHashB64u|encHashB64u|encSize|keyB64u|nonceB64u>>
Где обсуждались поля:
typefileNameorigSizeorigHashB64uencHashB64uencSizekeyB64unonceB64u
Что может измениться
В будущем могут измениться любые части идеи:
- сам бинарный формат;
- способ привязки файлов к сообщению;
- момент загрузки файла относительно отправки сообщения;
- серверное хранение blob-файлов;
- права доступа к скачиванию;
- способ рендера вложения в UI.
Именно поэтому этот файл не надо воспринимать как актуальную спецификацию.
Источник истины на сейчас
Актуальное состояние личных сообщений описано только в:
Dev_Docs/Personal_Messages/README.md
Если между этим черновиком и основным README есть расхождение, верным считается README.md.