Файлэхи

После недели экспериментов и некоторых обсуждений я пришёл к кое каким мыслям.

Для функционирования файл-эх с удосбствами для тех, кто не хочет на них подписываться я несколько пофиксил x/flie. По сути, это не противоечит стандарту, но теперь filename в запросе может быть path. То есть представлять собой конструкцию вида pics/1.jpg.

Это позволяет нам содержать фреки в виде иерархии, а не плоского списка.

Схема f/e работает по тем же принципам, что и расширенная u/e.

Например, запрос f/e/pics/books/-2:2 вернёт следующее:
pics
fileid:filename:username:address:description
fileid:filename:username:address:description
books
fileid:filename:username:address:description
fileid:filename:username:address:description
Где fileid представляет собой хеш, сформированный как msgid, только по содержимому файла и служит для однозначной идентификации файла при фетчинге. Забрать же файл можно с помощью x/file.

Например, x/file/books/filename.

Это возможно благодаря тому, что схема f/p, принимающая файлы через POST-запрос с параметрами pauth, fecho, dsc и file (строка авторизации, имя фэхи, описание файла и сам файл), сохраняет файл в директорию files/fecho/filename.

То есть при попытке отправить файл в фэху books, у нас создастся и индекс этой фэхи в формате, указанном в описании f/e и директория для фэхи в files (ежели такая отсутствует) и файл в этой директории.

Для доступности файлов через фреки, при создании приватного индекса файлов (доступного для поинтов), помимо соответствующего индекса фреков генерируется индекс из всех имеющихся фэх. Этот фэховый индекс добавляется к индеку фреков и пользователь видит в списке как фреки, так и содержимое фэх. А за счёт того, что фреки теперь поддерживают директории, пользователь также видит и принадлежность файла к какой-либо фэхе.

Например, так:
pics/1.jpg:12197:Смешная картинка
pics/1_1.jpg:364649:Красивая картинка
При попытке сохранить файл, хэш которого уже есть в фэхе, возвращается ошибка (file exists). При уникальном в рамках фэхе хеше, но повторяющимся имени, нода автоматически проставляет суфикс ("_1" в примере выше). Если же "_1" уже занят, то будет проставлен "_2" и так далее. Хотя, публикация таких файлов в больших количествах уже повод для разъяснительной работы.
Ответы на это сообщение: Peter (2017-06-19 12:12:48) vit01 (2017-06-19 13:06:59)
Andrew Lobanov (2017-06-19 11:33:04) [Ответить]
Предыдущее сообщение Следующее сообщение