FTPの転送終了確認と信頼性


今回構築しているシステムでFTPを使用します。
当方はFTPサーバー側で、いくつかのファイルを受信します。

1.転送終了確認をどうするか?
サイズの大きいファイルを受信します。
転送が終了したか否かを確認する方法はありますか?

大きいファイルの後に別のサイズの小さいファイルを転送し、それが生成されているか否かで確認しようと思っていますが、大丈夫でしょうか?
それとも別に方法がありますか?

2.転送の信頼性について
注、セキュリティの問題ではなく、正しく転送できるか否かということです。
いろいろHPを見ていると、FTPは信頼性のないプロトコルだというようなことが書いてありますが、実際はどうなのでしょうか?
CRCなどのチェックは行っているようですが?FTPサーバーで違いがありますか?

信頼性がない場合、正しく転送できたか否かを確認するには、どのようにすればよいでしょうか?
別にMD5などの値を転送して確認するというようなことも考えていますが、どうでしょうか?

3.FTPではなく、SFTPを使用しようと思っていますが、上記の点についてはどうでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/01/19 21:33:15
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント50pt

>1.転送終了確認

FTPサーバで proftpd を使う場合は HiddenStores という設定ができます。

これを on にするとアップロード中のファイル名が「.in.(元のファイル名)」となり、アップロード完了後に元のファイル名にリネームされるようになります。

サーバ側の受信監視プログラムは対象ディレクトリをチェックする際に .in. で始まるファイル名を無視すれば、アップロード途中のファイルを処理してしまうことが防げます。

http://proftpd.org/docs/directives/linked/config_ref_HiddenStore...


>2.転送の信頼性

ファイルの破損確認なら md5 ファイルなどを一緒にあげてもらうのが一般的だと思います。

id:gzmgzm

ありがとうございます。非常に参考になります。

文字数の制限で、質問には書けなかったのですが..

OSは未決定ですが、一応Linuxのつもりです。

無人で処理する必要があります。

2008/01/17 13:39:58
id:KairuaAruika No.2

回答回数6926ベストアンサー獲得回数97

双方のデータのプロパティでいつも確認してますけど

Zipだったら,解凍できればOKとか。

id:dev_zer0 No.3

回答回数332ベストアンサー獲得回数25

ポイント50pt

> 1.転送終了確認をどうするか?

とある商用サイトの注文データをホストに転送させることをしましたが、

ファイルサイズが大きい場合は分割して送ってました。

理論上、数Gbyteとか送る可能性もあるので100Mbyte単位に分割して送る仕様にしました。

受信側のバッチ処理の開始時刻までに送信データを送る必要があり、

1ファイルだとの送信失敗したとき、また1から送りなおす必要があり、

ファイルを分割しておけば送信に失敗しても、そのデータから送信すればよく

時間の短縮になります。

最後に分割したファイル一覧、サイズのデータを送信し、

受信側はそれを見てファイルとサイズが一致していることを確認することで

データが正常に転送終了されたことにしていました。


> 2.転送の信頼性について

確かにMQよりは信頼性がありませんが、TCP/IPなので送ったデータは正しいと保障されているはずです

問題はあるサイズのデータの転送に一体どれぐらいの時間がかかるかどうかです

これは誰にも保障できませんし、転送に失敗する可能性もあります。

# もちろん、転送に失敗した場合はサーバ、クライアント共に検知できます


銀行などのデータ転送の多くはIBM-MQかその類似品が使われています。

もし、FTPよりも高い信頼性やスケーラビティを求めているのでしたら

IBM-MQを使うことをお勧めします。


> 3.FTPではなく、SFTPを使用しようと思っています

SFTPはどちらかというとセキュリティの為です。

FTPでは通信内容が平文流れてしまうので、

盗聴されないように暗号化をして通信を行うのがSFTPです。

# telnetとsslの関係です。

id:gzmgzm

ありがとうございます。

実務で使われた経験は、参考になります。

2008/01/17 15:00:48

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません