Библиотека TGPuttyLib SFTP представляет собой библиотечную реализацию программы psftp из известного набора PuTTY от Simon Tatham.
Она позволяет разработчикам передавать файлы с максимально возможной скоростью. Для этого были увеличены некоторые размеры буферов.
TGPuttyLib основана на релизе PuTTY 0.83. Готовые к использованию классы в настоящее время доступны для C++, Delphi и Free Pascal.
Сейчас библиотека доступна для Windows, macOS, Linux и FreeBSD.
Посмотреть проект на GitHub: github.com/superflexible/TGPuttyLib
Или загрузите отсюда:
Скачать TGPuttyLib для Windows и Linux, с исходным кодом и демонстрационными примерами (Сборка 30: 32- и 64-разрядная)
Несколько пунктов:
- В Delphi рекомендуем просто использовать класс TTGPuttySFTP в tgputtysftp.pas, а не компонент TTGPuttySFTPClient в tgputtysftpclient.pas. Подробности см. в нашей рекомендации на GitHub.
- DLL PuTTY на 100% потокобезопасна и может обрабатывать очень большое количество одновременных соединений и передач. Каждому соединению и каждому потоку требуется свой экземпляр TTGPuttySFTP.
- Изменения в исходном коде были выполнены очень аккуратно и минималистично, чтобы обеспечить простую адаптацию к будущим выпускам PuTTY.
- Можно выбрать между классом TTGPuttySFTP и компонентом TTGPuttySFTPClient. Если выбран класс, его нужно создавать полностью в исходном коде. Класс использует 8-битные строки, тогда как компонент — Unicode (при условии, что сервер SFTP ожидает кодировку UTF-8). Обратные вызовы (события) будут вызываться в том же потоке, в котором был вызван метод TTGPuttySFTP, а не в главном потоке.
- Функции SSH shell и SCP, вероятно, будут добавлены в будущей версии.
- В комплект входят различные демонстрационные примеры, в частности полностью рабочий SFTP-клиент с GUI (только Delphi), а также несколько инструментов командной строки, написанных на C++, Delphi и Free Pascal.
- Можно передавать файлы из имён файлов или потоков. Можно также открыть файл напрямую и получить файловый дескриптор, а затем реализовать собственный цикл загрузки с использованием функций xfer_*. Это даёт случайный доступ к файлу, но функции xfer_* нужно использовать определённым образом. На данный момент примера на Pascal для этого нет, поэтому нужно посмотреть на функцию sftp_put_file в psftp.c.
- Поддержка прокси доступна начиная со сборки 8.
- Я скомпилировал код C с включенными утверждениями, но они реализованы как исключения Delphi через #define и функцию обратного вызова. Я полностью намерен оставить утверждения и исключения включенными во всех релизных версиях.
- Пожертвования, запросы и другие отзывы приветствуются, пожалуйста, отправляйте на my name @ gmail . com (мой адрес — tobiasgiesen)
- Лицензия TGPuttyLib такая же, как и лицензия PuTTY, поэтому ее можно использовать как в проектах с открытым исходным кодом, так и в коммерческих проектах.
Подробнее о PuTTY можно узнать на домашней странице PuTTY.
Изменения в динамической библиотеке и код на Pascal © 2019–2024 Tobias Giesen.
Они распространяются под той же лицензией, что и оригинальный PuTTY; см. ниже.
Лицензия PuTTY
Авторские права на PuTTY принадлежат Simon Tatham, 1997–2024.
Части кода © Robert de Bath, Joris van Rantwijk, Delian Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus Kuhn, Colin Watson, Christopher Staite, Lorenz Diener, Christian Brabandt, Jeff Smith, Pavel Kryukov, Maxim Kuznetsov, Svyatoslav Kuzmich, Nico Williams, Viktor Dukhovni и CORE SDI S.A.
Настоящим бесплатно предоставляется разрешение любому лицу, получившему копию этого программного обеспечения и сопутствующей документации (далее — «Software»), использовать «Software» без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий «Software», а также на разрешение лицам, которым «Software» предоставлено, делать это при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и это уведомление о разрешении должны быть включены во все копии или существенные части «Software».
«SOFTWARE» ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, В ТОМ ЧИСЛЕ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ВЛАДЕЛЬЦЫ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ НИ ЗА КАКИЕ ИСКИ, УБЫТКИ ИЛИ ИНЫЕ ТРЕБОВАНИЯ, ВОЗНИКШИЕ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ «SOFTWARE» ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С НИМ.
