Коли безпечно вважати, що завантаження файлів вдале?


1

Коли я завантажую файли на сервер через HTTP або FTP, я зазвичай завантажую їх знову лише для того, щоб перевірити, чи були вони успішно завантажені (я використовую контрольні суми md5, щоб перевірити це).

Це потрібно? Чи можу я бути впевненим, що завантаження файлів через HTTP або FTP проходить успішно, якщо програмне забезпечення, яке використовується для їх завантаження (наприклад, браузер при використанні SkyDrive або подібних сервісів, або FTPZilla при використанні FTP тощо), не дало мені помилок?

О, і я знаю про rsync , не потрібно цього пропонувати. Це стосується випадків, коли rsync - це не варіант.

Відповіді:


2

Успіх з точки зору того, чи дійсно пакети даних надійшли туди, коли вони були надіслані, зазвичай визначається базовим протоколом, в даному випадку TCP. Часто цього достатньо, щоб припустити успіх, оскільки більшість протоколів передачі файлів використовують це для визначення того, чи сталася пошкодження даних на мережевому рівні.

Я припускаю, що ви маєте на увазі весь файл, але в такому випадку так, контрольна сума - найкращий спосіб перевірити завантажені дані.

Однак немає причин, коли вам потрібно знову завантажувати їх, щоб перевірити їх, ви можете виконати контрольну суму на самому сервері. Зокрема, з FTP є рішення, які виконують контрольну суму файлів як частину самого процесу завантаження, наприклад, drftpd з плагіном zipscript використовує .sfv файли для перевірки завантажених файлів на рівні каталогу.


Отже FTP підтримує контрольну суму (+1 для інформації)? Це включено за замовчуванням на таких популярних клієнтах, як FileZilla, або взагалі потрібно завантажити плагін? Як щодо HTTP, чи слід вважати, що браузер досить розумний, щоб перевірити успішність передачі на рівні TCP (і що сервери достатньо розумні, щоб перевірити, чи надійшли дані)?
Каміло Мартін

Домовились. Якщо у вас на сервері є обліковий запис оболонки, ви можете хеш-файли. А ще краще - хеш-файли локально, ви можете вести облік хешів своїх файлів, які можуть стати в нагоді в один прекрасний день.
Synetech

@Synetech Якби у мене був обліковий запис оболонки на кожному сервері, де я зберігаю файли, я би використовував rsync. Це питання більше стосується таких випадків, як SkyDrive, коли ви змушені використовувати простий процес http ulpoad / download. Також мені цікаво ця функція контрольної суми FTP.
Каміло Мартін

Я боюся, що перевірка суми як частина FTP повинна підтримувати сервер. У вашому випадку ви обмежені тим, що пропонує ваш постачальник послуг. Ви повинні запитати, чи є у них функція виконувати контрольну суму завантажених файлів проти. % файлів, що належать до цього режиму, завантажено).
deed02392

1
В основному, протоколи TCP та протоколів нижчого рівня (OSI L2) мають вбудовані контрольні суми. Вони технічно слабкі порівняно з сучасними стандартами, але це буде проблемою лише, якщо ви працювали на дуже ненадійному з'єднанні. en.wikipedia.org/wiki/… citeseer.ist.psu.edu/stone00when.html
deed02392
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.