【プラグイン】cURLライブラリを使用したネットワークツール

Go down

【プラグイン】cURLライブラリを使用したネットワークツール

投稿 by miyako on 2018-11-28, 2:45 pm

cURLは,HTTPやFTPなど,さまざまなプロトコルをサポートしているクライアントライブラリです。

https://curl.haxx.se

2018年10月31日に公開された最新版(7.62.0)をプラグインにしました。

用途別に3タイプあります。

(海外のユーザーが中心ですが,それぞれ具体的な要望があって開発した経緯があります)



https://github.com/miyako/4d-plugin-curl-ftp

FTPに特化したバージョンです。

コマンド名は,Internet Commandsのものを踏襲しています。
ICとは違い,FTPだけでなく,SFTP・FTPS・TFTPもサポートしています。
(URLのプロトコル部をstfp://などの変えれば,それぞれのモードで動作します)

sftp
Macの場合『共有/リモートログイン』を有効にすれば,どこからでもファイルシステムにアクセスできますが,それを内部的に支えているのがsftpです。SSHでアクセスし,ファイルを送受信します。Internet Commandsではムリです。sftpとftpsでは,サーバーにリクエストするコマンド名が違いますが,そこはプラグイン側で吸収しています。

ftps
FTPは標準テキストなので,セキュリティに難点があります。ftpsは,SSL/TLSモードでFTPを実行するというものです。これもInternet Commandsではムリです。

その他

従来,Windows版のcURLは,FTPのアップロードが遅い(Macの半分以下)という難点がありました。最近のバージョン(7.60)でUPLOAD_BUFFERSIZEというオプションが新設され,速度が劇的に向上しています。

64ビット版のInternet Commandsでは,FTPの進捗ダイアログが廃止されています。

http://doc.4d.com/4Dv15/4D/15/4D-Internet-Commands-64-bit-version-for-OS-X.300-2048298.en.html

プラグインは進捗ダイアログを持っていませんが,コールバックメソッドを指定することができ,そこで自前の進捗ダイアログを更新(CALL FORMなど)することができます。

なお,本家のcURLはWindowsのUnicodeファイルパスをサポートしていませんが,プラグインのほうは対応済みです。

最後に,Internet Commandsはスレッドセーフではなく,アプリケーション本体と同じプロセスで動きますが,プラグインのほうは,プリエンプティブモードで平行処理させることができます。(コンパイルモード必須)



https://github.com/miyako/4d-plugin-curl-http

HTTPに特化したバージョンです。

基本的な能力は4DのHTTP Get/Requestとさほど差がありませんが,HTTP/2をサポートしています。
また,libproxyを活用し,ネットワーク上のプロキシ設定ファイルを読み込むことができます。
(Internet Commandsは,常にシステムのプロキシ設定を使用します)



汎用的なバージョンです。

https://github.com/miyako/4d-plugin-curl-v2

cURLの仕組みに通じていれば,SMTP(メール送信)などのプロトコルも処理することができます。

miyako

投稿数 : 281
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可