TGPuttyLib SFTP Library は、著名な PuTTY スイートの Simon Tatham による psftp プログラムをライブラリ化したものです。

開発者は、可能な限り最高の転送速度でファイルを転送できます。これを実現するため、いくつかのバッファサイズが拡大されています。

TGPuttyLib は PuTTY Release 0.83 をベースにしています。すぐに使えるクラスは現在、C++、Delphi、Free Pascal 向けに提供されています。

このライブラリは現在、Windows、macOS、Linux、FreeBSD で利用できます。

このプロジェクトを GitHub で見る: github.com/superflexible/TGPuttyLib

または、こちらからダウンロードできます:
Windows と Linux 向けの TGPuttyLib をソースコードとデモ付きでダウンロード(Build 30: 32 ビットおよび 64 ビット)

主なポイント:

  • Delphi では、tgputtysftpclient.pas の TTGPuttySFTPClient コンポーネントではなく、tgputtysftp.pas の TTGPuttySFTP クラスをそのまま使うことをご検討ください。詳細は GitHub の推奨事項をご覧ください。
  • PuTTY DLL は完全にスレッドセーフで、非常に多くの同時接続と転送を処理できます。各接続ごと、また各スレッドごとに、個別の TTGPuttySFTP インスタンスが必要です。
  • ソースコードの変更は、今後の PuTTY リリースでの変更を容易に取り込めるよう、最小限の方針で慎重に行われています。
  • TTGPuttySFTP クラスと TTGPuttySFTPClient コンポーネントのどちらかを選べます。クラスを選ぶ場合は、ソースコード内で完全に生成する必要があります。クラスは 8 ビット文字列を使用し、コンポーネントは Unicode です(SFTP サーバー側で UTF-8 エンコーディングが期待されている場合)。コールバック(イベント)は、TTGPuttySFTP のメソッドを呼び出したのと同じスレッドで呼び出されます。メインスレッドではありません。
  • SSH シェルおよび SCP 機能は、おそらく将来のバージョンで追加されます。
  • 各種デモが含まれており、特に GUI 付きの完全に動作する SFTP クライアント(Delphi のみ)に加え、C++、Delphi、Free Pascal で書かれたコマンドラインツールがいくつか含まれています。
  • ファイル名またはストリームからファイルを転送できます。ファイルを直接開いてファイルハンドルを取得し、xfer_* 関数を使って独自のアップロードループを実装することもできます。その場合、ファイルへランダムアクセスできますが、xfer_* 関数は特定の方法で使用する必要があります。現時点ではその Pascal の例はないため、psftp.c の sftp_put_file 関数を参照してください。
  • プロキシ サポートは build 8 から利用できます。
  • C コードはアサーションを有効にしてコンパイルしましたが、これは #define とコールバック関数を介して Delphi の例外として実装されています。すべてのリリース版で、アサーションと例外を有効のままにするつもりです。
  • ご寄稿、ご要望、その他のフィードバックを歓迎します。my name @ gmail . com までお送りください(my name は tobiasgiesen です)。
  • TGPuttyLib のライセンスは PuTTY のライセンスと同じなので、オープンソース プロジェクトでも商用プロジェクトでも使用できます。

PuTTY については、PuTTY ホームページで詳しくご覧いただけます。

動的ライブラリの改変部分および Pascal コードの著作権は 2019-2024 Tobias Giesen にあります。
これらは元の PuTTY と同じライセンスで配布されています。詳細は以下をご覧ください。

PuTTY ライセンス
PuTTY の著作権は 1997-2024 Simon Tatham にあります。

一部の著作権は 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. にあります。

本ソフトウェアおよび関連ドキュメントファイル(以下「ソフトウェア」)の複製を入手する者に対し、使用、複製、修正、結合、公開、配布、サブライセンスの付与、またはソフトウェアの複製物の販売を含むがこれらに限定されない一切の取扱いを、以下の条件に従うことを条件として、無償で許可します。また、ソフトウェアが提供された者にも、同様のことを許可することができます。

上記の著作権表示およびこの許諾表示は、ソフトウェアのすべての複製または実質的な部分に含めなければなりません。

本ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害を含むがこれらに限定されないいかなる種類の保証もありません。いかなる場合も、著作権者は、契約、不法行為、またはその他の行為に基づく請求、損害、または本ソフトウェアの使用やその他の取引に起因または関連して生じる責任について責任を負いません。