[WFX] CloudMailRu: работа с облачным хранилищем от mail.ru

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

D1P писал(а):не очень желаю в эту магию снова влезать.
Жаль... А то столкнулся с парой проблем в сборке x32-x64:
1. Библиотеки не работают из %COMMANDER_PATH%\64.
2. Если использовать их из папки плагина (а ничего другого не остаётся), то в случае использования одних и тех же длл для Тотала (в %COMMANDER_PATH% и %COMMANDER_PATH%\64) и плагина (точнее, с одним и тем же ImageBase) они конфликтуют между собой. Например, если вызвать CloudMailRu, а после него Secure FTP, то Тотал падает. Если у библиотек Тотала и CloudMailRu разный ImageBase, то такого нет, также всё нормально, если плагин использует библиотеки TC из %COMMANDER_PATH%. Плюс ещё избыточность - в памяти получается две пары и само собой, в папке плагина.
Всё это, естественно относится к TC3264, в раздельных сборках TC32 и TC64 библиотеки прекрасно работают из %COMMANDER_PATH%.
Последний раз редактировалось addhaloka Чт дек 08, 2016 18:25, всего редактировалось 2 раза.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

addhaloka
А что значит "сборка x32-x64"?
Я как-то догадываюсь, что проблема в том, что x32/x64 библиотеки имеют одинаковое название, но не очень понимаю алгоритм, при котором это может вызвать проблему.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

D1P писал(а):А что значит "сборка x32-x64"?
Вот это: комбинированный пакет Т. е. сборка, содержащая обе разрядности TC.
D1P писал(а):Я как-то догадываюсь, что проблема в том, что x32/x64 библиотеки имеют одинаковое название, но не очень понимаю алгоритм, при котором это может вызвать проблему.
Вроде такой алгоритм вообще невозможен - не представляю, как могут пересекаться между собой длл разной разрядности. Здесь конфликт библиотек одной разрядности - Тотал (или SFTP плагин, или какие другие плагины, использующие OpenSSL по схеме, вроде как рекомендованной Гислером) вызывает для себя библиотеки из COMMANDER_PATH% или %COMMANDER_PATH%\64, а CloudMailRu из %COMMANDER_PATH%\Plugins\WFX\CloudMailRu\x32 или %COMMANDER_PATH%\Plugins\WFX\CloudMailRu\x64, и ничего хорошего из этого не выходит, если библиотеки одинаковые в COMMANDER_PATH% и %COMMANDER_PATH%\Plugins\WFX\CloudMailRu\x32 или в %COMMANDER_PATH%\64 и %COMMANDER_PATH%\Plugins\WFX\CloudMailRu\x64, как уже выше писал.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

addhaloka
Плагин загружает dll из собственных каталогов только при соответствующей настройке, сделанной специально на случай каких-то конфликтов с имеющимися в системе/загруженными TC. Если эта настройка выключена, должны подхватываться библиотеки, какие есть в системе, первоочерёдно - те, что загрузил TC.
Если загруженные плагином библиотеки остаются в памяти, подхватываются TC, и что-то с ними конфликтует... ну нехорошо, наверное, но что тут делать - я не представляю.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

D1P
Дык, я уже выше говорил - если библиотеки лежат в %COMMANDER_PATH%, то всё прекрасно работает, но в случае совмещённого TC x32-x64 64-битные SSL расположены в %COMMANDER_PATH%\64, и плагин их оттуда не подхватывает, из-за чего и приходится включать загрузку библиотек из его папки.
В общем, хотелось бы, чтобы 64-х битная версия плагина могла использовать библиотеки не только из %COMMANDER_PATH%, но и из %COMMANDER_PATH%\64. Хотя проблема с конфликтами решаема, но так было бы гораздо лучше. :)

p.s. С другой стороны - если добавление этого нетривиальная задача или может вызвать проблемы в работе плагина, тогда, наверно не нужно. Не думаю, что много народу пользуется совмещёнными сборками TC3264, у меня например, это чисто тестовая сборка.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

В общем, хотелось бы, чтобы 64-х битная версия плагина могла использовать библиотеки не только из %COMMANDER_PATH%, но и из %COMMANDER_PATH%\64.
Плагин сам не грузит библиотеки из %COMMANDER_PATH% или подкаталогов. Что TC загрузил в память, то и должно подсосаться.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

D1P писал(а):Плагин сам не грузит библиотеки из %COMMANDER_PATH%
Не знаю, как это в TC реализовано - после запуска/перезапуска Тотала библиотек нет в загруженных модулях, но при вызове CloudMailRu они загружаются, если лежат в %COMMANDER_PATH%. А если в %COMMANDER_PATH%\64, то не загружаются. Возможно, оттуда Тотал их как-то иначе грузит, чем из %COMMANDER_PATH%.
Ronim
Сообщения: 57
Зарегистрирован: Пн ноя 14, 2016 15:42

Сообщение Ronim »

D1P
Огромное спасибо за штатное нерекурсивное удаление! Гигантский шаг к совершенству. Всё (в самых разных режимах и с любыми данными, в т.ч. с пакетами вплоть до терабайта и очень большими (сотни тысяч файлов) массивами данных одноактно; чего не скажешь про штатный браузерный интерфейс) работает без нареканий и беспрецедентно prestissimo!

Можно вопрос?
Хочу спросить Вас, как Вы относитесь к замечаниям, подобным моим (не то, что выше, и не о явных багах, а об уточнениях, вроде о том, сколько это - терабайт (я настаивал потому что это на мой принципиально и важно)? Грубо - вынуждены отвечать, или приветствуете?
Мне показалось, что первое, в связи с чем поясняюсь - мне лично ничего не надо, и плагин меня более чем устраивал в изначальном виде - лишь бы работал в основных режимах, а он работал (все проблемы я могу решить другими средствами или обойти; в крайнем, перкомпилировать под себя - Вы ж всё выдали, и текст совершенно прозрачный и хорошо комментированный). Я вылез тут только потому, что Ваш плагин уже сейчас не только явление совершенно исключительное (я работаю с Windows Commander с 94-го года и плотно знаком более чем с шестьюдесятью облаками и помню особенности и граничные каждого - могу судить) и не только частное - как плагин. Это буквально революционное решение (когда что-то работает на порядок производительней, чем все остальные и без исключений, особенно, если сразу по нескольким параметрам и без потерь и уступок в чём-то другом - это революция; очень редкая ныне в IT) для облаков вообще - ни один webdav (ни для какого облака) не работает с такой скоростью и стабильностью и близко - минимум на порядок медленнее. Соответственно хотелось помочь сделать его и сам по себе безупречным (я ведь только о существенных и заведомо реализуемых без особых затрат Вам капаю) - чтоб продукт был достоин звания творения Великого Позитроника :), и намекнуть, что Вы не один в этом мире. Вашу революционную идею легко подхватить и почти без затрат портировать на любые облака, пусть и имеющие webdav - на порядок же выше эффективность и безусловно шире функциональность, очень возможно, что и со стрижкой звонкой капусты, и мне кажется, что лучше б это сделать Вам самому :)


Не дожидаясь ответа ещё несколько замечаний:

а. нельзя ли штатно разрешить концевые комментарии в MailRuCloud.ini? Сейчас они возможны только строчные, и они не привязаны к блоку эккаунта и могут перемещаться при штатном редактировании ini (через Свойства). Да и строчные, если они не разрешены Вами явно, могут приводить к трудноотлавливаемым неприятностям;

б. плагин не работает по сети. В смысле, когда на противоположной панели открыт какой-то сетевой (локальный) ресурс. Браузерный мейл работает. Собственно, это единственное существенное функциональное отличие плагина от браузерного интерфейса. С ресурсами, подключёнными как сетевой диск,-то работает, но это неудобно. Может, в перспективе можно это как-то реализовать?

в. совсем отдалённое. Просто замечание. Штатными средствами обмен между разнородными облаками через webdav невозможен, в т.ч. и подключёнными как сетевые диски. Между однородными, но разными тоже. Ваше решение могло бы решить эту насущную проблему. Может, стоит подумать об аналогичных интерфейсах для других облак? :). Через линки - естественно, нет (наверное), но сама по себе скорость работы через браузер всегда выше, чем через webdav (на порядок и более), а через Ваш эмулятор web-интерфейса выше, чем штатная (через браузер) и значительно стабильнее (у меня пока работает просто абсолютно стабильно, чего никогда не было с мейлом через браузер).
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Ronim
Раз вопросы заданы тут - то и отвечу тут (тем более будут некоторые технические подробности), но на будущее весь оффтопик лучше в личку. Здесь, как и полагается профильному форуму, поддерживается очень строгая модерация.

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

За оценку плагина - спасибо. Я его революцией какой-то не считаю, да я даже не сам вскрыл протокол - вот этим людям спасибо (все ссылки на них в стартовом посте), ну и mail.ru конечно.

Стрижка капусты меня не интересует. Ни в прямом, ни в переносном смысле. Гораздо интереснее мне бы были pull-реквесты или просто советы по коду.

Теперь по замечаниям:
нельзя ли штатно разрешить концевые комментарии в MailRuCloud.ini?
О каких комментариях речь? Стандартно ini-файлы (и дельфовский класс для работы с ними) поддерживают только один вид комментариев. Ничего другого "штатного" я не знаю.
плагин не работает по сети
Приведите пожалуйста примеры сетевых путей, с которыми не работает. Сейчас реализована поддержка UNC-путей (+TC добавляет немного своей магии), для остального нужны примеры.
Может, стоит подумать об аналогичных интерфейсах для других облак?
Плагин не работает через webdav или ещё что-то общеупотребимое. Там своё API, для которого я реализовал модель и добавил взаимодействие с TC. Решение по быстрому копированию основано на возможностях этого API и, в первую очередь, возможности самого облака так делать.
Исходя из этого - для других стораджей нужно писать всё своё, со своими решениями.
Что касается скорости работы: плагин будет работать заведомо быстрее браузера, потому что ему не нужно быть браузером. Плагин не подгружает графику, не рендерит страницу, не выполняет скрипты. Всё, что он делает - шлёт по https запросы, получает и разбирает ответы. Нет никакого оверхеда.

Да, нужно учитывать, что API не публичное, не документированное и никем не гарантируется, что оно будет существовать далее. Mail.ru в любой момент могут изменить его, и в этом случае плагин станет бесполезен. Отчасти поэтому код и опубликован, у кого-нибудь обязательно найдутся силы на доработку.
Ronim
Сообщения: 57
Зарегистрирован: Пн ноя 14, 2016 15:42

Сообщение Ronim »

D1P писал(а):весь оффтопик лучше в личку
Да, я просто не хотел лезть в личку без приглашения - многие не любят, кто-то смотрит редко или вообще не смотрит...
Ну и если обсуждаемый продукт делает что-то на порядок лучше, чем делали все остальные до того, надо об этом говорить явно, на мой. Это же значимо.
О каких комментариях речь?
Я про концевые - в конце строки, например:
email=такой-то@mail.ru ; Научно-популярная литература
Сейчас они недопустимы. Допустимы строчные (когда строка начинается точкой с запятой), но они не привязаны к блоку эккаунта
[имя эккаунта]
email=такой-то@mail.ru

; Научно-популярная литература
password=такой-то
tc_pwd_mngr=0
unlimited_filesize=0
split_large_files=0

, если вставить его между строк. При модификации они могут переместиться в другое место. Это (штатное разрешение их) непринципиально, конечно, но хорошо бы предусмотреть, что они могут быть. Лучше всего б, конечно, чтоб появилась возможность концевых комментариев - для чего эккаунт, что хранит его облако и т.д. - там привязка автоматическая.
Или возможность добавлять дескрипшны к элементам списка эккаунтов на панели. Сейчас её нет.
не работает по сети
Приведите пожалуйста примеры
Если на альтернативной (облачной) панели открыт ресурс на другой машине в локальной сети, например:
\\Main\IN\
, обмен невозможен - выдаётся ошибка. Браузерный мейл позволяет загружать с сетевых ресурсов и сбрасывать на них.
Плагин не работает через webdav или ещё что-то общеупотребимое.
Да конечно же. Я ж и говорю про то, чтоб и для других облак, и поддерживающих webdav, хорошо бы добавить аналогичный функционал - плагин для TC. Параллельно. Это во-первых на порядок поднимет производительность с ними (другими), и станет возможным обмен между разнородными облаками. Сейчас это можно только при помощи сторонних программ и только для фиксированных пар, и работает это крайне медленно. Впрочем, webdav сам по себе медленен, по-видимому генетически.
для других стораджей нужно писать всё своё, со своими решениями.
Мне показалось, у большинства хороших облак API похожи (насколько - не могу судить; я просто хотел обратить Ваше внимание на эту теоретическую возможность). У того же pCloud, в частности - лучшее, на мой, облако, интегрально не уступающее мейловому.
Конечно, с точки зрения программиста это через ж. Но часто ректально получается в разы эффективней, чем перорально (я про лекарства, разумеется :) ) - почему нет, если это принципиально поднимает качество? Ну вот включит сейчас мейл webdav - кто будет им пользоваться при наличии Вашего плагина? :)

И это, конечно, так - вообще. Была бы революция безо всяких оговорок.
Собственно, Вы уже её свершили, даже только этим плагином. Просто мало кто плотно работает с облаками, и соответственно пока не могут оценить...
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Концевых комментариев не будет - это не поддерживается ini-файлами. Могу добавить возможность добавлять описания к аккаунтам.
С сетью посмотрю, кажется уже знаю, где засада.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

D1P
Подтверждаю проблему с использованием комбинированной х32+х64 сборки ТС: на х64-версии из %COMMANDER_PATH%\64 dll'ки загружаться отказываются.

Фича с каталогом %COMMANDER_PATH%\64, похоже, растёт из этой темы, только сейчас не совсем точно: сейчас ТС загружает библиотеки не только для внутреннего FTPS-клиента, но и плагин самого Гислера умеет загружать из %COMMANDER_PATH%\64. (Если верить Process Hacker: под рукой SFTP нет, а поднимать в виртуалке затруднительно.)

Может быть, стоит уточнить у Гислера, как эту ситуацию разрешить? В той же теме SFTP-плагина вряд ли будет оффотопом?
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Спросить Гислера нужно, но у меня не скоро руки дойдут.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

D1P
Главное, что в курсе, подождём :)
Ronim
Сообщения: 57
Зарегистрирован: Пн ноя 14, 2016 15:42

Сообщение Ronim »

D1P писал(а):Могу добавить возможность добавлять описания к аккаунтам.
Ух, хорошо бы - я на это почти не надеялся

Где-то видел, вроде, но в Вашем Issues не нашёл:
при перемещении папки по дереву, например, из корня в какую-то подпапку, это происходит пофайлово. Если много мелких, очень медленно. Через линки - понятное дело - перемещать в одном и том же эккаунте нельзя, но может можно как-то решить это?
Практически проблемы-то нет - большие папки в ТС я перемещаю через временный эккаунт - это быстро. Но это, пожалуй, единственное, что осталось из принципиальных отличий плагина от браузерного интерфейса (где он уступает)
Последний раз редактировалось Ronim Вс ноя 20, 2016 17:04, всего редактировалось 1 раз.
Ответить