NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Здесь можно обсудить ваш любимый плагин.
User avatar
Michael Lukashov
Posts: 484
Joined: Mon 23 Jan, 2006 09:38
Been thanked: 10 times
Contact:

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Michael Lukashov »

C 2013/02/28 плагин входит в дистрибутив FAR 3, заменяя собой FarFTP.

Полезные ссылки:

При возникновении проблем:
Last edited by Michael Lukashov on Sat 19 Sep, 2015 10:22, edited 2 times in total.
taxakz
Posts: 4
Joined: Mon 25 May, 2020 19:34

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by taxakz »

Latest post of the previous page:

DosBox по ftp не читает каталоги на медиасервере. Вываливается ошибка. Хотя по SMB все нормально
Attachments
eror_list_DosBox.png
taxakz
Posts: 4
Joined: Mon 25 May, 2020 19:34

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by taxakz »

taxakz wrote: Tue 26 May, 2020 05:23 DosBox по ftp не читает каталоги на медиасервере. Вываливается ошибка. Хотя по SMB все нормально
Извините, ошибся NetBox
2useven10
Posts: 4114
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 194 times

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by 2useven10 »

Судя по картинке, он считает все папки файлами.
Мегамонстр
Posts: 54
Joined: Fri 24 Aug, 2012 15:24

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Мегамонстр »

Возникает ошибка при закрытии Far, если тот пытается подключиться (когда появляется красное окошко с Cancel и Reconnect).



Логи, на мой взгляд, не позволяют судить о причине проблемы. :?
Last edited by Мегамонстр on Thu 18 Jun, 2020 18:36, edited 1 time in total.
User avatar
Freeman
Posts: 31
Joined: Thu 20 Nov, 2014 20:10
Location: Санкт-Петербург
Has thanked: 5 times
Been thanked: 2 times
Contact:

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Freeman »

NetBox из стабильной сборки 5577 в паре с плагином AltHistory наконец-то пишет в историю имена серверов (подключаюсь к разным серверам через SCP), но при переходе по пунктам истории каталогов (Alt+F12) всякий раз хочет подключиться заново и просит пароль, даже если переход происходит в рамках одного сервера. Пароли в Far не храню.

NetBox из сборки 4907 сервера в историю не пишет (их нужно угадывать или запоминать, какой пункт какому соответствует), но зато переходит по каталогам как ожидается: в рамках существующей сессии без запроса пароля.

Это баг?
Pasha_ZZZ
Posts: 150
Joined: Mon 12 Jun, 2006 14:58
Been thanked: 2 times
Contact:

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Pasha_ZZZ »

Возможная причина того, что NetBox показывает оставшееся время как попало. Файл FileOperationProgress.cpp, функа TFileOperationProgressType::TotalTimeLeft. Возвращается TDateTime(ToDouble(ToDouble(FTotalSize - FTotalSkipped) / CurCps) / SecsPerDay). Чтобы все было правильно, надо изменить так:

Code: Select all

TDateTime(ToDouble(ToDouble(FTotalSize - FTotalSkipped - FTotalTransferred) / CurCps) / SecsPerDay);
vskv
Posts: 1
Joined: Mon 07 Sep, 2020 10:40

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by vskv »

Вопрос: а как NetBox определяет, что нужно включать UTF для сообщений сервера?

Потому как через UI на это никак не повлиять, по умолчанию стоит Off, и в итоге получается вот такая фигня в логе



Проблема в том, что свой "disconnect message" этот сервер тоже по русски в уникоде отдаёт, а Far показывает крякозябры :(
User avatar
faruh
Posts: 59
Joined: Sat 04 Apr, 2009 19:46

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by faruh »

SSH/SCP
для симлинки на директорию не ототображается настроеный символ пометки.
для симлинков на файлы отрабатывает корректно.

предполагаю что плагин не возвращает информацию что это симлинк.



Update:
хммм, хотя в атрибутах


Update 2:
Last edited by faruh on Thu 12 Nov, 2020 10:35, edited 5 times in total.
User avatar
DrKnS
Posts: 5744
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 319 times

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by DrKnS »

faruh wrote: Thu 12 Nov, 2020 10:10предполагаю что плагин не возвращает информацию что это симлинк
Так и есть, вроде бы поправил.
User avatar
faruh
Posts: 59
Joined: Sat 04 Apr, 2009 19:46

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by faruh »

DrKnS wrote: Fri 13 Nov, 2020 19:17 Так и есть, вроде бы поправил.
в Far Manager, version 3.0.5704.0 x86 работает
спасибо!
Last edited by faruh on Mon 16 Nov, 2020 15:32, edited 2 times in total.
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Maximus »

Maximus wrote: Thu 26 Dec, 2019 10:54 Есть проблема с синхронизацией...
.....
ВЕРСИЯ
Пока писал, вдруг возникла версия причины. Если посмотреть на большие списки, когда сравниваю выше по дереву, то бросается в глаза, что очень много файлов с подчеркиваниями в названиях (процентов 95).....
По своему посту чуть ранее я делал в багтреккере запись (английский), но там пока тоже тишина. Решил все-таки изучить вопрос поподробнее. То есть кратко, проблема в том, что для определенного сочетания файлов в папке, имеющих подчеркивание в названии, процесс синхронизации показывает файлы, которые гарантированно есть и по аттрибутам совпадают.

**** Этап 1. Сравнение родственников (текущий WinSCP и FAR/NetBox)
Для большого бэкапа на bsd (куча php файлов) сделал синхронизацию (Зеркало на локал) через gui WinSCP 5.17.8 (Build 10803) и после этого повторно, которая сообщила, что разницы не найдено. То есть текущий WinSCP все корректно отрабатывает. Пошел в Far 3.0.5700.0 - для тех же папок куча файлов с подчеркиваниями.
Включил лог, увидел там для этих файлов Local File .. is new, Remote file ... is new, то есть по каким-то причинам NetBox именно считает их новыми.

**** Этап 2. Изучение исходников
Грузим исходники обоих, индексируем полнотекст, роемся
Код конечно сходный по понятными причинам, но есть одна важная разница. В исходниках класс TStringList, реализация которого исторически была повторена, так как все съехали со специфической компиляции под C++ Builder (Borland, VCL) на универсальную. Но Мартин судя по всему не съехал. Поэтому где-то здесь разница.
Сортировка выглядит так, как будто отсортировали по UPPERCASE-у (не лингвиситически), а ищем по CompareString (лингвистически). Я даже пару тестов сделал, скопировав из FAR-а по ordinal сортировке проблемные папки и ища в них бинарно по CompareString. Результат ровно такой как у текущего NetBox-а, то есть если остортировать ordinal по UpperCase-у (как виндовая CompareStringOrdinal делает),а искать CompareString, то не находятся ровно те же файлы.

Глядя в TStringList вроде бы все нормально, список создается отсортированный AddObject должен добавлять файл через бинарный поиск, а потом, когда идет сравнение, IndexOf тоже должен пользоваться им же.
Но вспомнилось, что в NTFS Unsorted mode в far-е выглядит очень похожим на обычный алфавитный порчдок, но чуть-чуть меняется. Соответственно мировой разум подсказывает, что для NTFS это связано как-то тем, что там используется B-TREE для расположения файлов, а для FAT-а по старинке определяется порядком появление файлов в папке. Соответственно, решил проверить на фате, как нетбокс синхронизирует. Заводим том в FAT32 (например TrueCrypt-ом), копируем туда файлы в обратном алфавитном порядке (чтобы нарушить напрочь сортировку) и запрашиваем синхронизацию в NetBox, и тут мы получаем почти полный список файлов. Из чего делаем вывод, что AddObject добавляет не бинарно-сортированно, а подряд, соответственно идем в исходный код и видим
(src\base\Classes.cpp)

Code: Select all

intptr_t TStringList::AddObject(UnicodeString S, TObject *AObject)
{
  intptr_t Result = 0;
  if (!GetSorted())
  {
    Result = GetCount();
  }
  else
  {
    if (Find(S, Result))
    {
      ....
    }
    else
    {
      Result = GetCount();
    }
  }
  InsertItem(Result, S, AObject);
  return Result;
}

.. что она некорректно написана. Если строка не найдена (отрицательный результат Find), то она добавляется в конец списка.

Для сравнения часть кода Find из Delphi/VCL

Code: Select all

function TStringList.Add(const S: string): Integer;
begin
  if not Sorted then
    Result := FCount
  else
    if Find(S, Result) then
      case Duplicates of
        ..... 
      end;
  InsertItem(Result, S);
end;
Из-за этого получается такой недо баг, который в силу того, что никто почти не использует FAT, а NTFS почти всегда дает алфавитный порядок файлов, по настоящему нигде не проявлялся.

Может быть это надо было написать в треккере, но я везде какая-то тишина по этой информации, поэтому не думаю, что это принципиально.
User avatar
DrKnS
Posts: 5744
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 319 times

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by DrKnS »

Maximus wrote: Sun 22 Nov, 2020 16:48 Может быть это надо было написать в треккере
Лучше сразу сюда - https://github.com/FarGroup/Far-NetBox/pulls
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Maximus »

DrKnS wrote: Sun 22 Nov, 2020 16:55 Лучше сразу сюда - https://github.com/FarGroup/Far-NetBox/pulls
Спасибо за оперативное внесение pull request-а. Сейчас проверил Far Manager v3.0 build 5709
  • NTFS проблемные папки: ok, No Differences found
  • FAT, файлы, скопированные в обратной сортировке: ok , No Differences found
У меня только пожелание что-то делать с версиями текущих сборок. для build 5700 и 5709 одинаковая версия netbox-а ( 2.4.5.534 ) и неизменный с 2017 года changelog. Я так понимаю, что здесь человеческий фактор, кто-то должен руками инкремент сделать, но хоть что-то, тот же log, мог бы на автомате какие-то id тикетов содержать что ли. Ну или просьба поделиться каким-то знанием, как определить по бинарной загрузке соответствие github-таймлайну.
Maximus
Posts: 31
Joined: Thu 08 Oct, 2009 15:20

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by Maximus »

С релизами 5709 есть проблемы, возможно regression. Сравнение более или менее глубоких папок вызывает access violation
Exception: 0xC0000005 - EXCEPTION_ACCESS_VIOLATION
Details: Memory at FFFFFFF4 could not be read
errno: 0x00000000 - No error
LastError: 0x00000000 - Операция успешно завершена.
NTSTATUS: 0x80000006 - {Больше нет файлов} Не найдены другие файлы, соответствующие заданному шаблону.
Address: 0x00012B75 - NetBox.dll!tinylog::TinyLog::operator delete
Function: OpenW
Source:
File: C:\Temp\Far Manager v3.0 build 5709\Plugins\NetBox\NetBox.dll
Plugin: NetBox 2.4.534.5 (SFTP/FTP(S)/SCP/WebDAV client for FAR 3.0 x86/x64, Michael Lukashov)
Far: 3.0.5709.0 x86 (689c635)
OS: 6.1.7601.2.1.0.256.1
Kernel: 6.1.7601.24545 (win7sp1_ldr_escrow.200102-1707)
igor_20
Posts: 2
Joined: Wed 25 Nov, 2020 10:25

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by igor_20 »

Проблема, которая вроде бы еще не обсуждалась.
Исторически так сложилось, что у нас на FTP появляются битые символические ссылки.

При перемещении по дереву каталогов NetBox преждевременно завершает работу, если перейти в каталог, где присутствует битая символическая ссылка (достаточно только перейти в такой каталог, без попытки перейти по битой ссылке).

Это происходит из-за того, что после команды LIST плагин дополнительно читает все симлинки каталога:

igor_20
Posts: 2
Joined: Wed 25 Nov, 2020 10:25

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Post by igor_20 »

Забыл добавить, что если убрать галочку с "Разрешать символьные ссылки", проблема исчезает.
Post Reply

Return to “Обсуждение плагинов”