4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

FTP_Loginエラー

3 posters

Go down

FTP_Loginエラー Empty FTP_Loginエラー

投稿 by tdys 2018-10-25, 7:07 pm

macOS Mojave にて、4D v16.4 になります。

FTP_Login エラーで、ファイルを転送できません。
エラーコードは、-43 でドキュメントを参照すると「ファイルが見つかりません。」とあります。
これをどう解釈すればいいのかわからず、質問させていただきました。

Windows でまったく同じコードでしますと、
エラーは出ずに、問題なく転送できています。

mac 特有の何かがあるのでしょうか。

tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-10-27, 8:35 pm

転送するファイルかそれが入っているフォルダに2バイト文字が入っていないでしょうか。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-10-28, 10:18 am

ありがとうございます。

すみません。書き方がまちがっておりました。
ログインする段階でエラーが発生して、ログインできません。
そのログインする際のエラーコードが、-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

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-10-28, 8:01 pm

ファイルを送る以前の段階で,確かにファイル名は関係ないですね。失礼しました。

難しいコードの書き方をされていますが,Windowsで動くということは,[ftp_prefs]server_nameに2バイト文字が入っていないでしょうか。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-10-28, 10:56 pm

ありがとうございます。

確認いたしました。
[ftp_prefs]server_name に2バイト文字は入っておりません。ログイン名、パスワード、ともに入っていないです。
その文字列をそれぞれにダブルクオーテーションでくくって、直接入れてみましたけれども、結果は同じでした。
何がわるいのか...

tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-10-29, 2:34 pm

$error:=NET_Ping ( [ftp_prefs]server_name ; "text" ; $alive ; 1000 )

で$errorやaliveには0が返って来るでしょうか。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-10-29, 4:01 pm

ありがとうございます。

$error は、0 が返ってきまして、
$alive は、1 が返ってきました。
ping では、問題ないようです。
Xserver を使用させていただいています。

ローカルに問題がありそうですね。

tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-10-29, 8:14 pm

$aliveの正常は1でした。失礼しました。
XserverにmacOS Mojaveのインストールが出来るのですね。さすがに寿命が長く,初期投資は少し高いが,結局は安くつくMacならではです。

2バイト文字にこだわったのは,32bitの4D ver16.4ではメールが送れていたのに,64bitバージョンでは送れず,パートナープログラムでのアドバイスで,ファイル名(ファイル名.4dbase)を2バイト文字から1バイト文字にした所,送れる様になったと言うことがありましたので。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-10-29, 11:09 pm

ありがとうございます。

すみません。文章がまちがっておりました。
ファイルの転送先が、Xserver になります。

2バイト文字の件、そういうこともあるのですね。
今後の参考とさせていただきます。

セキュリティの関係で遮断されて...のようなこともあるのかと思い、
セキュリティを外してやってみましたけれども、結果は同じでした。


tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by miyako 2018-10-31, 10:55 am

こんにちは

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

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

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by miyako 2018-10-31, 11:15 am

補足情報(やや専門的)です。

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

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

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-10-31, 11:53 am

miyakoさん
お世話になっています。
問題の起こったMac,macOS High SierraでFinder上で「4d」として検索してみましたが,4Dのファイルが呼び出されています。
また4DからOpen documentで開いたパスの一部を小文字にしてもエラーなく開けました。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by miyako 2018-10-31, 12:06 pm

トランスロケーションについてですが,インストールされた場所がどこであっても,システムが信用していないアプリは,そのコピーを隔離された場所に作成して起動する,という仕組みですので,Finder(Spotlight)の検索がどこを指していたとしても,それだけでは隔離されていないという証明にはなりません。

Internet Commandsは,「プラグイン」という性格上,4D本体のコマンド(たとえばOpen documentなど)とは関連がありません。たとえば,TLS最低バージョンの設定(SET DATABASE PARAMETER)は,Internet Commandsに適用されません。

ただ,Fileというファイルがfileでも開けたのであれば,少なくとも,ボリュームは大文字と小文字を区別しない設定でフォーマットされているといえそうです。

miyako

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

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-10-31, 10:39 pm

4Dが問題なく動くか否か(何をもってそう言えるかも難しいですが)を調べるコマンドやメソッドというのはあるでしょうか。

対応していない設定でも4Dは動くのですが,何か小さな事が出来ないという動作をする様に思います。例えばこのスレッドの
>2バイト文字にこだわったのは,32bitの4D ver16.4ではメールが送れていたのに,
>64bitバージョンでは送れず,パートナープログラムでのアドバイスで,ファイル名
>(ファイル名.4dbase)を2バイト文字から1バイト文字にした所,送れる様になった
>と言うことがありましたので。

ではSMTP_New以降何もエラーはなく,SMTP_Sendだけがエラーを起こしていました。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by miyako 2018-11-01, 2:39 pm

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

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

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-11-01, 6:08 pm

miyako wrote:Mac版だけで問題が発生しているということですが,4Dアプリは,通常の方法(署名付きのディスクイメージをダウンロード,アプリケーションフォルダー配下に手作業でコピー)でインストールされたのでしょうか。

ありがとうございます。
上記の通りに、インストールさせていただきました。

たくさんの情報をありがとうございます。

tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-11-01, 6:28 pm

miyako wrote:ところで,大文字小文字を区別する設定(APFSのオプション)でボリュームをフォーマットされた,ということはないでしょうか。

https://support.apple.com/ja-jp/guide/disk-utility/dskutl14027/mac

ありがとうございます。
それも、ありませんでした。

tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by tdys 2018-11-01, 6:29 pm

Pluginフォルダまでのフルパスに日本語が含まれていたために、エラーが返ってきたもようです 汗。
そこを修正させていただくと、ログインすることができました。
大変、失礼いたしました。

ここにもっと早く気がつくべきでした。
その前に、最初から注意すべきところですね。

M_Fujihara 様、miyako 様、はじめ みなさま、
いろいろとありがとうございました。

tdys

投稿数 : 11
登録日 : 2017/04/06

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by M_Fujihara 2018-11-02, 9:03 pm

ASSERTはどこに置けば良いのか,少し難しそうですね。ありがとうございました。

>Internet Commandsは20年前のフリーウェアがベースになっている「おまけ」
 うちでは大いに活躍させてもらっています。

M_Fujihara

投稿数 : 84
登録日 : 2016/12/03

トップに戻る Go down

FTP_Loginエラー Empty Re: FTP_Loginエラー

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


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