Проблемът е, че когато се пише нов пост, то прикачените файлове все още нямат URL и по принцип URL-то им още не е възможно да се предскаже.
Затова е и невъзможно да се вмъкне таг за картинка/видео/mp3 в поста, сочеща към прикачения файл.
Заобикаляне
В момента заобикалянето на проблема става в две стъпки - създава се пост с прикачените файлове и след това се редактира този пост, като се вмъкват желаните медиа елементи с вече известните URL-та на прикачените файлове.
Идея за кардинално решение
В момента, URL-тата на прикачените файлове се създават на базата на ID-то на файла в таблицата в базата данни:
/!attached/%FILE_DB_ID%
Идеята е да се направи втора схема на URL-то, базирано на MD5 сумата на файла:
/!file/%MD5_SUM%
Тъй като MD5 сумата на файла е известна преди записа му в базата данни, то и URL-то ще е известно и ще може да се използва в непубликуван пост.
Алгоритъма го виждам така:
1. Когато един или няколко файла се посочат за прикачане в browse редактора, то техните MD5 суми се изчисляват с JS и се създават бутончета за всеки файл, които да вмъкват в редактора таговете за картинка/видео/аудио със коректното URL на файла по новата схема.
Единственото, което ме притеснява е, че подобни сметки могат да забавят значително работата на редактора и това би било тъжно.
Тука може да се опита и последният писък – webassembly.
2. Разбира се, в бакенда се имплементира поддръжката на новата схема на URL-то.
3. Готово.
Аз лесно ще направя точка 2. Обаче точка 1 е леко доста над възможностите ми в JS/WASM...
Моля за коментари, пропуснати моменти, възможни усложнения...
Също, ако решението се приеме за работоспособно, се търсят доброволци за т.1
Elim Garak
Създадено на 28.07.2020, видяно: 3209 пъти. #1224
според мен е хубаво уиа да работи и без джаваскрипт
johnfound
Създадено на 28.07.2020, видяно: 3202 пъти. #1225
Добре е. Но целият UI принципно не може да работи без JS. Например тулбара в редактора на постовете. Или чата.
А основната функционалност си работи супер и без JS.
Евлампи
Създадено на 28.07.2020, видяно: 3191 пъти. #1226
Нещо не схващам на каква фаза е проблемът. В джаваскрипта ако имаш блоб с данните моеш да изплющиш измислено урл с createObjectURL
Качваш файла, даваш му id (тоест URL), показваш. Това е.
Просто и елегантно. Мислех сложни схеми всяко мнение да има собствена именна област като виртуална директория на сървъра. Но е значително по-просто да чистиш понякога локални адреси които не се срещат в мненията.
И другото нещо. Имената на файловете ги няма. Добре е да се помисли за генерирането на url като "!attached/33/ime-na-faila.ext".
ДонРеба
Създадено на 29.07.2020, видяно: 3159 пъти. #1278
не искам да ти давам такива идеи, но либераската цензура го е измислила вече - слагаш някакъв служебен таг за урл например #attachment001# или каквото там ти е най-лесно за парсване, който после ще се "цензурира" . когато юзера субмитне поста, бекенда виждайки "хейтспийч" го подменя с "новговор", в случая истинското урл, след като вече е качил атачмента разбира се.
само да не почнеш после да ползваш същия механизъм за истинска цензура
ДонРеба
Създадено на 29.07.2020, видяно: 3157 пъти. #1279
Качваш файла, даваш му id (тоест URL), показваш. Това е.
за 99.9% от случаите няма да има проблем, обаче подозирам че в разни специални случаи ще дразни, например ако пиша пост офлайн. ще кажеш кой пише офлайн - може да не е нарочно, интернета спира примерно за малко, а ти не си усетил, пишеш си там, цъкаш субмит, файла още не е изпратен, става една каша. по добре транзакцията да е атомарна, а не на две части
johnfound
Създадено на 29.07.2020, видяно: 3152 пъти. #1281
Вместо MD5 ползвай session id + identity на прикачения файл
Да, ама фронтенда не знае session id-то на юзера. И не ми се иска да го знае.
Вместо MD5 ползвай session id + identity на прикачения файл
Да, ама фронтенда не знае session id-то на юзера. И не ми се иска да го знае.
Еми прави както правят всички нормални платформи за уеб - прави си хеш или каквато щеш производна на session id и си я подавай на фронта, ако там искаш да я ползваш.
johnfound
Създадено на 29.07.2020, видяно: 3131 пъти. #1320
Вместо MD5 ползвай session id + identity на прикачения файл
Да, ама фронтенда не знае session id-то на юзера. И не ми се иска да го знае.
Еми прави както правят всички нормални платформи за уеб - прави си хеш или каквато щеш производна на session id и си я подавай на фронта, ако там искаш да я ползваш.
А какъв е проблемът със MD5 сумата на файла, както е в началния пост? Тя вече си съществува в базата данни и е уникална без някакви специални танци.
Когато девица роди непорочно-заченат по пълнолуние във високосна година ще имаш колизия на MD5 и затова специалистите препоръчват SHA-2, SHA-3, или BLAKE2.
ДонРеба
Създадено на 29.07.2020, видяно: 3123 пъти. #1323
никакъв, ако се смята бързо от фронтенда, обаче там си с по-вързани ръце, жаваскрипт, това онова
Вместо MD5 ползвай session id + identity на прикачения файл
Да, ама фронтенда не знае session id-то на юзера. И не ми се иска да го знае.
Еми прави както правят всички нормални платформи за уеб - прави си хеш или каквато щеш производна на session id и си я подавай на фронта, ако там искаш да я ползваш.
А какъв е проблемът със MD5 сумата на файла, както е в началния пост? Тя вече си съществува в базата данни и е уникална без някакви специални танци.
Ми както си решиш, аз само давам предложение
johnfound
Създадено на 29.07.2020, видяно: 3118 пъти. #1327
Вместо MD5 ползвай session id + identity на прикачения файл
Да, ама фронтенда не знае session id-то на юзера. И не ми се иска да го знае.
Еми прави както правят всички нормални платформи за уеб - прави си хеш или каквато щеш производна на session id и си я подавай на фронта, ако там искаш да я ползваш.
А какъв е проблемът със MD5 сумата на файла, както е в началния пост? Тя вече си съществува в базата данни и е уникална без някакви специални танци.
Ми както си решиш, аз само давам предложение
Това е ясно. Мисълта ми беше, че щом отхвърляш едното решение и предлагаш друго, трябва да имаш някакви причини. Нещо да не ти харесва в единият вариант и да ти харесва в другия. Това е което ме интересува.
Stilgar
Създадено на 29.07.2020, видяно: 3107 пъти. #1355
Чакам да ви видя кога ще дойдете на моето. Само да кажа, че преди съм минавал по тоя път.