【プラグイン】cURLライブラリを使用したネットワークツール
【プラグイン】cURLライブラリを使用したネットワークツール
cURLは,HTTPやFTPなど,さまざまなプロトコルをサポートしているクライアントライブラリです。
https://curl.haxx.se
2018年10月31日に公開された最新版(7.62.0)をプラグインにしました。
用途別に3タイプあります。
(海外のユーザーが中心ですが,それぞれ具体的な要望があって開発した経緯があります)
1
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はスレッドセーフではなく,アプリケーション本体と同じプロセスで動きますが,プラグインのほうは,プリエンプティブモードで平行処理させることができます。(コンパイルモード必須)
2
https://github.com/miyako/4d-plugin-curl-http
HTTPに特化したバージョンです。
基本的な能力は4DのHTTP Get/Requestとさほど差がありませんが,HTTP/2をサポートしています。
また,libproxyを活用し,ネットワーク上のプロキシ設定ファイルを読み込むことができます。
(Internet Commandsは,常にシステムのプロキシ設定を使用します)
3
汎用的なバージョンです。
https://github.com/miyako/4d-plugin-curl-v2
cURLの仕組みに通じていれば,SMTP(メール送信)などのプロトコルも処理することができます。
https://curl.haxx.se
2018年10月31日に公開された最新版(7.62.0)をプラグインにしました。
用途別に3タイプあります。
(海外のユーザーが中心ですが,それぞれ具体的な要望があって開発した経緯があります)
1
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はスレッドセーフではなく,アプリケーション本体と同じプロセスで動きますが,プラグインのほうは,プリエンプティブモードで平行処理させることができます。(コンパイルモード必須)
2
https://github.com/miyako/4d-plugin-curl-http
HTTPに特化したバージョンです。
基本的な能力は4DのHTTP Get/Requestとさほど差がありませんが,HTTP/2をサポートしています。
また,libproxyを活用し,ネットワーク上のプロキシ設定ファイルを読み込むことができます。
(Internet Commandsは,常にシステムのプロキシ設定を使用します)
3
汎用的なバージョンです。
https://github.com/miyako/4d-plugin-curl-v2
cURLの仕組みに通じていれば,SMTP(メール送信)などのプロトコルも処理することができます。
miyako- 投稿数 : 487
登録日 : 2016/07/05
Similar topics
» 【プラグイン】標準コマンドで処理できないキー入力を検出する
» 【プラグイン】めかぶ v2
» 【プラグイン】OCR
» 【プラグイン】ファイルやフォルダーの番号を取得する
» 【プラグイン】CITRIX環境でクライアントユーザー名を取得する
» 【プラグイン】めかぶ v2
» 【プラグイン】OCR
» 【プラグイン】ファイルやフォルダーの番号を取得する
» 【プラグイン】CITRIX環境でクライアントユーザー名を取得する
Permissions in this forum:
返信投稿: 不可