FTP経由のApple DMGファイルが破損しているのはなぜですか?
-
08-07-2019 - |
質問
いくつかのApple DMGファイルをFTPで送信しようとしていますが、SafariまたはIEを使用して手動で送信すると、目的の場所で正常に破損しません。ただし、zipやexeで大成功して使用していたフリーウェアFTPクライアントを使用する場合、または終了したPowershellスクリプトを使用する場合(別のスタックオーバーフローの質問の回答から適応)、約1/2 Mbを失う10.5 Mbファイルとdmgが破損しています。誰が間違っている可能性がありますか?それを防ぐためにできることは?これまでのところ、送信する前にdmgをgzipするだけで、何も達成できませんでした。繰り返しになりますが、dmg以外は問題なく送信されます。
FYIバイナリモード転送を使用しているので、.. thxではありません
解決 3
ご存知の通り。私が使用していたクライアントは、PowerShellスクリプトとまったく同じ問題を抱えていたに違いありません。 StreamReaderを使用して転送用のバイトを取得し、エンコードが正しくないと想定していました。動作しないBinaryReaderに切り替えましたが、動作するようになりました。
他のヒント
クライアントがdmgファイルをテキストファイルとして扱うようです。 FTPクライアントでバイナリ転送モードを設定すると、そのままFTPで転送されます。
ftpでのASCII転送モードは単なる愚かだといつも思っていました。それは価値があるより多くのトラブルを引き起こします。
DMG以外はすべて正しく転送されますか?転送エンコードの問題のようです。 FTPは、主に歴史的な荷物により、バイナリとASCIIの両方の転送タイプをサポートしています。昔は、帯域幅がひどかったので、高ビット(ASCIIは使用しません)を省くことで時間を節約できました。ただし、ビットが設定されたバイトがある場合、ASCII転送モードではそれらが失われます-したがって、「バイナリ」はモード。何も切り捨てません。
通常、転送モードを切り替えるコマンドは「bin」です。または" ascii"。