Как я могу сказать, идентичен ли файл на FTP локальному файлу с фактической загрузкой файла?

Я создал класс утилит PathHelper, который дает мне все необходимые мне пути. Например,

<link href="<%=PathHelper.CssUrl("FormulaIndex.css")%>" rel="Stylesheet" type="text/css"/>

Дает мне правильный полный URL-адрес с помощью System.Web.VirtualPathUtility.ToAbsolute () и моего собственного соглашения (content / css / yourFile.css).

Я сделал то же самое для js, xml, t9n, pics ... Его центральное, многоразовое использование, и теперь мне нужно было всего лишь изменить одну строку, чтобы поймать перемещение папки scripts из content / js в Scripts на всех моих сайтах и стр.

Идиотский ход, если вы спросите меня, но это реальность в текущей бета-версии: (

5
задан Rubens Farias 8 October 2009 в 23:51
поделиться

4 ответа

Универсального способа не существует. Если ftp-сайт включает файл контрольной суммы, вы можете загрузить его (что будет намного быстрее, так как контрольная сумма довольно мала), а затем посмотреть, совпадают ли контрольные суммы. Но, конечно же, это зависит от того, что владелец ftp-сайта создаст файл контрольной суммы и будет поддерживать его в актуальном состоянии.

В остальном, вы - SOL

5
ответ дан 14 December 2019 в 01:11
поделиться

Если сервер - это старый FTP, вы не можете ничего лучше, чем проверить размер и временные метки .

FTP не имеет механизма для выдачи вам хэшей / контрольных сумм файлов, поэтому вам нужно будет сделать что-то вроде сохранения специального «листингового файла», который содержит все имена файлов и хэшей, или выполнить отдельный запрос через HTTP или какой-либо другой протокол.

В идеале вы все равно не должны использовать FTP, это действительно устаревший протокол. Если у вас есть контроль над системой, вы можете использовать rsync или что-то подобное.

2
ответ дан 14 December 2019 в 01:11
поделиться

Используйте контрольную сумму. Вы генерируете хэш md5 (или sha1, sha2 и т. Д.) Обоих файлов, и если файлы идентичны, то хеши будут идентичными.

1
ответ дан 14 December 2019 в 01:11
поделиться

IETF попытался добиться этого, добавив новые команды FTP, такие как MD5 и MMD5.

http://www.faqs.org/rfcs/ftp-rfcs.html

Однако , не все поставщики FTP поддерживают их. Таким образом, вы должны проверить целевой FTP-сервер, с которым будет работать ваше приложение, чтобы узнать, поддерживает ли он MD5 / MMD5. Если нет, вы можете воспользоваться описанными выше обходными путями.

1
ответ дан 14 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: