Почему файлы Apple DMG через FTP портятся?
-
08-07-2019 - |
Вопрос
Я пытаюсь передать некоторые файлы Apple DMG по FTP, и если мы делаем это вручную через Safari или IE, то он в конечном итоге заканчивается в целости и сохранности. Однако, если я использую бесплатный FTP-клиент, который мы с большим успехом использовали для zip и exe, или если я использую скрипт Powershell, который я завершил (адаптированный из ответа на вопрос другого потока в стеке), тогда я потеряю около 1/2 Мб на файл 10,5 Мб и dmg поврежден. У кого-нибудь есть подсказки, что может пойти не так? Что я мог сделать, чтобы предотвратить это? До сих пор все, что я пробовал, это распаковывать dmg перед отправкой, и это ничего не дало. Опять же, все, кроме dmg, передается просто отлично.
К вашему сведению, я использую передачу в двоичном режиме, так что это не так ... спасибо, хотя
Решение 3
Просто чтобы все знали. Должно быть, у клиента, который я использовал, была та же проблема, что и у моего скрипта PowerShell. Я использовал StreamReader, чтобы получить байты для передачи, и он предполагал, что кодировка была неправильной. Я переключился на BinaryReader, который не работает, и теперь он работает.
Другие советы
Похоже, ваш клиент рассматривает файл dmg как текстовый файл. установите режим двоичной передачи в вашем ftp-клиенте, и он будет работать как есть.
Я всегда думал, что режим передачи ascii в ftp просто глуп. Это вызывает больше проблем, чем стоит.
Вы уверены, что все, кроме DMG, передается правильно? Похоже, проблема с кодировкой передачи. FTP поддерживает двоичные и ASCII типы передачи, в основном из-за исторического багажа. В старые времена, когда пропускная способность была ужасающей, отказ от старшего бита (который ASCII не использует) хорошо экономил время. Однако, если у вас есть какие-либо байты с установленным битом, режим передачи ASCII их потеряет - следовательно, " двоичный " режим, который ничего не усекает.
Как правило, команда для переключения режимов передачи является "bin" или "ascii".