FTP_Loginエラー
3 posters
FTP_Loginエラー
macOS Mojave にて、4D v16.4 になります。
FTP_Login エラーで、ファイルを転送できません。
エラーコードは、-43 でドキュメントを参照すると「ファイルが見つかりません。」とあります。
これをどう解釈すればいいのかわからず、質問させていただきました。
Windows でまったく同じコードでしますと、
エラーは出ずに、問題なく転送できています。
mac 特有の何かがあるのでしょうか。
FTP_Login エラーで、ファイルを転送できません。
エラーコードは、-43 でドキュメントを参照すると「ファイルが見つかりません。」とあります。
これをどう解釈すればいいのかわからず、質問させていただきました。
Windows でまったく同じコードでしますと、
エラーは出ずに、問題なく転送できています。
mac 特有の何かがあるのでしょうか。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
ありがとうございます。
すみません。書き方がまちがっておりました。
ログインする段階でエラーが発生して、ログインできません。
そのログインする際のエラーコードが、-43 と出ています。
ファイルを転送する前の段階で、ひっかかってしまっている状態です。
「ファイルが見つかりません」ということが理解できていない状態です。
Case of
: (FTP_Login ([ftp_prefs]server_name;[ftp_prefs]login;[ftp_prefs]pass;$ftp_id)#0)
$errr:=FTP_Login ([ftp_prefs]server_name;[ftp_prefs]login;[ftp_prefs]pass;$ftp_id)
ALERT("ログインエラー:"+String($err))
上にも記しましたが、Windows では、このコードでもエラーが出ずに通っています。
すみません。書き方がまちがっておりました。
ログインする段階でエラーが発生して、ログインできません。
そのログインする際のエラーコードが、-43 と出ています。
ファイルを転送する前の段階で、ひっかかってしまっている状態です。
「ファイルが見つかりません」ということが理解できていない状態です。
Case of
: (FTP_Login ([ftp_prefs]server_name;[ftp_prefs]login;[ftp_prefs]pass;$ftp_id)#0)
$errr:=FTP_Login ([ftp_prefs]server_name;[ftp_prefs]login;[ftp_prefs]pass;$ftp_id)
ALERT("ログインエラー:"+String($err))
上にも記しましたが、Windows では、このコードでもエラーが出ずに通っています。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
ファイルを送る以前の段階で,確かにファイル名は関係ないですね。失礼しました。
難しいコードの書き方をされていますが,Windowsで動くということは,[ftp_prefs]server_nameに2バイト文字が入っていないでしょうか。
難しいコードの書き方をされていますが,Windowsで動くということは,[ftp_prefs]server_nameに2バイト文字が入っていないでしょうか。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Re: FTP_Loginエラー
ありがとうございます。
確認いたしました。
[ftp_prefs]server_name に2バイト文字は入っておりません。ログイン名、パスワード、ともに入っていないです。
その文字列をそれぞれにダブルクオーテーションでくくって、直接入れてみましたけれども、結果は同じでした。
何がわるいのか...
確認いたしました。
[ftp_prefs]server_name に2バイト文字は入っておりません。ログイン名、パスワード、ともに入っていないです。
その文字列をそれぞれにダブルクオーテーションでくくって、直接入れてみましたけれども、結果は同じでした。
何がわるいのか...
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
$error:=NET_Ping ( [ftp_prefs]server_name ; "text" ; $alive ; 1000 )
で$errorやaliveには0が返って来るでしょうか。
で$errorやaliveには0が返って来るでしょうか。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Re: FTP_Loginエラー
ありがとうございます。
$error は、0 が返ってきまして、
$alive は、1 が返ってきました。
ping では、問題ないようです。
Xserver を使用させていただいています。
ローカルに問題がありそうですね。
$error は、0 が返ってきまして、
$alive は、1 が返ってきました。
ping では、問題ないようです。
Xserver を使用させていただいています。
ローカルに問題がありそうですね。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
$aliveの正常は1でした。失礼しました。
XserverにmacOS Mojaveのインストールが出来るのですね。さすがに寿命が長く,初期投資は少し高いが,結局は安くつくMacならではです。
2バイト文字にこだわったのは,32bitの4D ver16.4ではメールが送れていたのに,64bitバージョンでは送れず,パートナープログラムでのアドバイスで,ファイル名(ファイル名.4dbase)を2バイト文字から1バイト文字にした所,送れる様になったと言うことがありましたので。
XserverにmacOS Mojaveのインストールが出来るのですね。さすがに寿命が長く,初期投資は少し高いが,結局は安くつくMacならではです。
2バイト文字にこだわったのは,32bitの4D ver16.4ではメールが送れていたのに,64bitバージョンでは送れず,パートナープログラムでのアドバイスで,ファイル名(ファイル名.4dbase)を2バイト文字から1バイト文字にした所,送れる様になったと言うことがありましたので。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Re: FTP_Loginエラー
ありがとうございます。
すみません。文章がまちがっておりました。
ファイルの転送先が、Xserver になります。
2バイト文字の件、そういうこともあるのですね。
今後の参考とさせていただきます。
セキュリティの関係で遮断されて...のようなこともあるのかと思い、
セキュリティを外してやってみましたけれども、結果は同じでした。
すみません。文章がまちがっておりました。
ファイルの転送先が、Xserver になります。
2バイト文字の件、そういうこともあるのですね。
今後の参考とさせていただきます。
セキュリティの関係で遮断されて...のようなこともあるのかと思い、
セキュリティを外してやってみましたけれども、結果は同じでした。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
こんにちは
Mac版だけで問題が発生しているということですが,4Dアプリは,通常の方法(署名付きのディスクイメージをダウンロード,アプリケーションフォルダー配下に手作業でコピー)でインストールされたのでしょうか。
実行ファイルの署名が確認できない場合,たとえば自分でZip圧縮したものを展開してアプリケーション配下のサブディレクトリに「インストール」した場合など,ファイルシステムを保護するために,トランスロケーションという仕組みが発動することがあります。この場合,起動したアプリは,サンドボックスと呼ばれる「隔離された場所」で起動され,特定の場所以外ではファイルの書き込みができない状態で動作することになります(MacOS 10.12 Sierra以降)。
"App Translocation Services In OS X 10.12"で検索すると情報がみつかります。
Internet Commandsが一時ファイルを作成できないためにエラーが返されているかもしれません。
試せることとしては,
古いバージョンのInternet Commandsがストラクチャと同じ階層にあれば取り除く
注記:プラグインはアプリにプリインストールされていますが,ストラクチャと同じ階層にあるものが優先されるためです。
インストール場所を「アプリケーション直下」変えてみる
インストーラー(ディスクイメージ)から4Dを再インストールしてみる
なお,4D Internet Commandsは,昔,まだインターネットが新しいものだったころに,サードパーティ社製のプラグインを4Dが買い取って無償で提供するようになった経緯があります。それから20年以上,ほとんど進化しておらず,4Dの「本体」と比べると,かなりクオリティが悪く,単なる「おまけ」程度のレベルです。もちろん,最低限,動いてくれないと困るのですが・・・
もし,どうしても動かないようであれば,フリーの代替品もあります。
https://github.com/miyako/4d-plugin-curl-ftp
Mac版だけで問題が発生しているということですが,4Dアプリは,通常の方法(署名付きのディスクイメージをダウンロード,アプリケーションフォルダー配下に手作業でコピー)でインストールされたのでしょうか。
実行ファイルの署名が確認できない場合,たとえば自分でZip圧縮したものを展開してアプリケーション配下のサブディレクトリに「インストール」した場合など,ファイルシステムを保護するために,トランスロケーションという仕組みが発動することがあります。この場合,起動したアプリは,サンドボックスと呼ばれる「隔離された場所」で起動され,特定の場所以外ではファイルの書き込みができない状態で動作することになります(MacOS 10.12 Sierra以降)。
"App Translocation Services In OS X 10.12"で検索すると情報がみつかります。
Internet Commandsが一時ファイルを作成できないためにエラーが返されているかもしれません。
試せることとしては,
古いバージョンのInternet Commandsがストラクチャと同じ階層にあれば取り除く
注記:プラグインはアプリにプリインストールされていますが,ストラクチャと同じ階層にあるものが優先されるためです。
インストール場所を「アプリケーション直下」変えてみる
インストーラー(ディスクイメージ)から4Dを再インストールしてみる
なお,4D Internet Commandsは,昔,まだインターネットが新しいものだったころに,サードパーティ社製のプラグインを4Dが買い取って無償で提供するようになった経緯があります。それから20年以上,ほとんど進化しておらず,4Dの「本体」と比べると,かなりクオリティが悪く,単なる「おまけ」程度のレベルです。もちろん,最低限,動いてくれないと困るのですが・・・
もし,どうしても動かないようであれば,フリーの代替品もあります。
https://github.com/miyako/4d-plugin-curl-ftp
miyako- 投稿数 : 468
登録日 : 2016/07/05
Re: FTP_Loginエラー
補足情報(やや専門的)です。
32ビット版のInternet Commandsは,FSSpec, FSRefという「古い(OS 9/OS X初期)」のAPIでファイルシステムにアクセスしていますが,64ビット版のほうは,NSURLという「現行」の方法でファイルにアクセスしています。良い点として,パス名が1024文字まで扱えるようになったわけですが,反面,FSSpec, FSRefには「許された」処理ができない(NSURLにはシステムの「セキュリティ保護機能」が組み込まれているため)という現象が起きているのかもしれません。
https://developer.apple.com/jp/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/Introduction/Introduction.html
ところで,大文字小文字を区別する設定(APFSのオプション)でボリュームをフォーマットされた,ということはないでしょうか。
https://support.apple.com/ja-jp/guide/disk-utility/dskutl14027/mac
32ビット版のInternet Commandsは,FSSpec, FSRefという「古い(OS 9/OS X初期)」のAPIでファイルシステムにアクセスしていますが,64ビット版のほうは,NSURLという「現行」の方法でファイルにアクセスしています。良い点として,パス名が1024文字まで扱えるようになったわけですが,反面,FSSpec, FSRefには「許された」処理ができない(NSURLにはシステムの「セキュリティ保護機能」が組み込まれているため)という現象が起きているのかもしれません。
https://developer.apple.com/jp/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/Introduction/Introduction.html
ところで,大文字小文字を区別する設定(APFSのオプション)でボリュームをフォーマットされた,ということはないでしょうか。
https://support.apple.com/ja-jp/guide/disk-utility/dskutl14027/mac
miyako- 投稿数 : 468
登録日 : 2016/07/05
Re: FTP_Loginエラー
miyakoさん
お世話になっています。
問題の起こったMac,macOS High SierraでFinder上で「4d」として検索してみましたが,4Dのファイルが呼び出されています。
また4DからOpen documentで開いたパスの一部を小文字にしてもエラーなく開けました。
お世話になっています。
問題の起こったMac,macOS High SierraでFinder上で「4d」として検索してみましたが,4Dのファイルが呼び出されています。
また4DからOpen documentで開いたパスの一部を小文字にしてもエラーなく開けました。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Re: FTP_Loginエラー
トランスロケーションについてですが,インストールされた場所がどこであっても,システムが信用していないアプリは,そのコピーを隔離された場所に作成して起動する,という仕組みですので,Finder(Spotlight)の検索がどこを指していたとしても,それだけでは隔離されていないという証明にはなりません。
Internet Commandsは,「プラグイン」という性格上,4D本体のコマンド(たとえばOpen documentなど)とは関連がありません。たとえば,TLS最低バージョンの設定(SET DATABASE PARAMETER)は,Internet Commandsに適用されません。
ただ,Fileというファイルがfileでも開けたのであれば,少なくとも,ボリュームは大文字と小文字を区別しない設定でフォーマットされているといえそうです。
Internet Commandsは,「プラグイン」という性格上,4D本体のコマンド(たとえばOpen documentなど)とは関連がありません。たとえば,TLS最低バージョンの設定(SET DATABASE PARAMETER)は,Internet Commandsに適用されません。
ただ,Fileというファイルがfileでも開けたのであれば,少なくとも,ボリュームは大文字と小文字を区別しない設定でフォーマットされているといえそうです。
miyako- 投稿数 : 468
登録日 : 2016/07/05
Re: FTP_Loginエラー
4Dが問題なく動くか否か(何をもってそう言えるかも難しいですが)を調べるコマンドやメソッドというのはあるでしょうか。
対応していない設定でも4Dは動くのですが,何か小さな事が出来ないという動作をする様に思います。例えばこのスレッドの
>2バイト文字にこだわったのは,32bitの4D ver16.4ではメールが送れていたのに,
>64bitバージョンでは送れず,パートナープログラムでのアドバイスで,ファイル名
>(ファイル名.4dbase)を2バイト文字から1バイト文字にした所,送れる様になった
>と言うことがありましたので。
ではSMTP_New以降何もエラーはなく,SMTP_Sendだけがエラーを起こしていました。
対応していない設定でも4Dは動くのですが,何か小さな事が出来ないという動作をする様に思います。例えばこのスレッドの
>2バイト文字にこだわったのは,32bitの4D ver16.4ではメールが送れていたのに,
>64bitバージョンでは送れず,パートナープログラムでのアドバイスで,ファイル名
>(ファイル名.4dbase)を2バイト文字から1バイト文字にした所,送れる様になった
>と言うことがありましたので。
ではSMTP_New以降何もエラーはなく,SMTP_Sendだけがエラーを起こしていました。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Re: FTP_Loginエラー
4D自体の動作検証も日々使用されているコマンドですが,
基本的にはASSERTがそれに相当するかと思います。
http://doc.4d.com/4Dv16/4D/16.4/ASSERT.301-3978171.ja.html
参考: https://ja.wikipedia.org/wiki/表明
いろいろな説明の仕方がありますが「自分のために落とし穴を掘っておく」イメージです。
なにかうっかり間違えたり,忘れたり,外的な要因であるべきものがなくなっていた場合,
ここに落ちるように仕掛けておくことで,早期に問題を発見し,
後でよりおおきな問題が起きることを未然に防ぐ意味があります。
ただ,署名・トランスロケーションの問題は,検証するためのツールがAppleから提供されていますし,
引き合いに出されているInternet Commandsの事例は特殊(64ビット版プラグインの作り込みが甘い)なので,
教訓があるとすれば「Internet Commandsは20年前のフリーウェアがベースになっている「おまけ」なので,4D本体ほど信用できない」ということではないでしょうか。
基本的にはASSERTがそれに相当するかと思います。
http://doc.4d.com/4Dv16/4D/16.4/ASSERT.301-3978171.ja.html
参考: https://ja.wikipedia.org/wiki/表明
いろいろな説明の仕方がありますが「自分のために落とし穴を掘っておく」イメージです。
なにかうっかり間違えたり,忘れたり,外的な要因であるべきものがなくなっていた場合,
ここに落ちるように仕掛けておくことで,早期に問題を発見し,
後でよりおおきな問題が起きることを未然に防ぐ意味があります。
ただ,署名・トランスロケーションの問題は,検証するためのツールがAppleから提供されていますし,
引き合いに出されているInternet Commandsの事例は特殊(64ビット版プラグインの作り込みが甘い)なので,
教訓があるとすれば「Internet Commandsは20年前のフリーウェアがベースになっている「おまけ」なので,4D本体ほど信用できない」ということではないでしょうか。
miyako- 投稿数 : 468
登録日 : 2016/07/05
Re: FTP_Loginエラー
miyako wrote:Mac版だけで問題が発生しているということですが,4Dアプリは,通常の方法(署名付きのディスクイメージをダウンロード,アプリケーションフォルダー配下に手作業でコピー)でインストールされたのでしょうか。
ありがとうございます。
上記の通りに、インストールさせていただきました。
たくさんの情報をありがとうございます。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
miyako wrote:ところで,大文字小文字を区別する設定(APFSのオプション)でボリュームをフォーマットされた,ということはないでしょうか。
https://support.apple.com/ja-jp/guide/disk-utility/dskutl14027/mac
ありがとうございます。
それも、ありませんでした。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
Pluginフォルダまでのフルパスに日本語が含まれていたために、エラーが返ってきたもようです 汗。
そこを修正させていただくと、ログインすることができました。
大変、失礼いたしました。
ここにもっと早く気がつくべきでした。
その前に、最初から注意すべきところですね。
M_Fujihara 様、miyako 様、はじめ みなさま、
いろいろとありがとうございました。
そこを修正させていただくと、ログインすることができました。
大変、失礼いたしました。
ここにもっと早く気がつくべきでした。
その前に、最初から注意すべきところですね。
M_Fujihara 様、miyako 様、はじめ みなさま、
いろいろとありがとうございました。
tdys- 投稿数 : 11
登録日 : 2017/04/06
Re: FTP_Loginエラー
ASSERTはどこに置けば良いのか,少し難しそうですね。ありがとうございました。
>Internet Commandsは20年前のフリーウェアがベースになっている「おまけ」
うちでは大いに活躍させてもらっています。
>Internet Commandsは20年前のフリーウェアがベースになっている「おまけ」
うちでは大いに活躍させてもらっています。
M_Fujihara- 投稿数 : 80
登録日 : 2016/12/03
Permissions in this forum:
返信投稿: 不可
|
|