Конференция "Начинающим" » Докачка файлов через idhttp. [D7, WinXP]
 
  • Anatoly Podgoretsky © (28.05.10 09:00) [20]
    > vegarulez  (28.05.2010 08:15:19)  [19]

    Тебе по существу несколько раз объяснили, и не наша проблема, что ты этого
    не понимаешь.
  • Anatoly Podgoretsky © (28.05.10 09:01) [21]
    > vegarulez  (28.05.2010 08:15:19)  [19]

    Кстати ты что принял на свой счет, насчет своей личности, случайно не слово
    ли Генофонд?
  • vegarulez (06.06.10 09:34) [22]
    Anatoly Podgoretsky ©   (28.05.10 09:01) [21]
    ну да... были сомнения...

    Ну всё. Всё получилось. Докачку сделал. определили размер файла и сделал через поток и параметр Request.Range - всё рабит на ура.

    Теперь вопрос в следующем. Как можно реализовать crc проверку файла?
    ну т.е. [не знаю как правильно выразиться] допустим есть у меня файл 1.rar, потом появился на его месте новый файл, c тем же названием 1.rar а он допустим не докачался до конца в предыдущий раз, я запускаю программу и она соответсвенно начнёт качать с того байта где была остановлена, но файл то уже совсем другой. Я планирую сделать проверку на размер файла + дата изменения которые получаю перед закачкой.

    FileDate := IdHTTP1.Response.LastModified;
    FileType := IdHTTP1.Response.ContentType;



    Поэтому вопрос есть ли более элегантный способ, допустим всзять md5 хэш или crc... подскажите как правильно сделать верификацию...
  • Anatoly Podgoretsky © (06.06.10 09:42) [23]
    > vegarulez  (06.06.2010 09:34:22)  [22]

    Да какая разница, тот или другой файл, все равно качать с последней позиции,
    а еще лучше с последней позиции минус 1 килобайт. Кроме того, как ты
    посчитаешь CRC не закачав весь файл?. Но проверять все равно надо, но по
    известному CRC для проверки целостности файла.
    Контроль можно сделать и по другому, сначала скачивать рядом лежащий CRC и
    сравнивать с сохраненым. В качестве CRC принять использовать MD5. Можно
    также поступать по принципу торрент файлов, когда CRC не один, а множество,
    по одному CRC на каждый блок фиксированого размера, скажем на каждые 4 кб
    или более.
  • vegarulez (06.06.10 23:50) [24]
    Заметил, что передаётся параметр ETag, в котором скорее всего содержится crc. Вопрос как оно закодировано? md5?
  • vegarulez (07.06.10 00:03) [25]
    Хотя странно - если бы это был md5 хэш зачем его тогда разделять через чёрточку... подскажите...

    Date: Sun, 06 Jun 2010 20:01:53 GMT
    Server: Apache/2.2.3 (Red Hat)
    Last-Modified: Sat, 22 May 2010 09:10:10 GMT
    ETag: "293200b-ae3fb0-4872b2cb14080"
    Accept-Ranges: bytes
    Content-Length: 11419568
    Connection: close
    Content-Type: text/plain

  • vegarulez (07.06.10 00:35) [26]
    Так... ну вроде понимание про Etag пришло.

    ETag  (Entity tag) является уникальным идентификатором версии объекта и чаще всего генерируется какой-либо  хэш-функцией . Спецификация не навязывает каких-либо алгоритмов для  вычисления  значения  ETag  — главное чтобы это значение было уникально для всех различных версий одного объекта. Значение ETag одного объекта может совпадать со значением другого, из этого не следует эквивалентность этих объектов.



    т.е. таким образом не имеет смысла вычисления md5 файла, уже скаченного. проще разруливать, при запросе, по хэшу ETag?

    В верном направлении мысль пошла?
  • vegarulez (07.06.10 06:43) [27]
    Anatoly Podgoretsky ©   (06.06.10 09:42) [23]
    почему лучше минус 1 кб???
  • vegarulez (15.06.10 07:23) [28]
    vegarulez   (07.06.10 00:35) [26]

    В верном направлении мысль пошла????

    vegarulez   (07.06.10 06:43) [27]
    почему лучше минус 1 кб???
  • имя (09.08.10 20:50) [29]
    Удалено модератором
  • имя (11.08.10 01:05) [30]
    Удалено модератором
  • имя (11.08.10 01:09) [31]
    Удалено модератором
  • tebeen (04.10.10 04:54) [32]
    fDownloadStream := TFileStream.Create(SourceFile, fmCreate);
    fDownloadStream.Seek(0,soFromBeginning); //


    вот где собака зарыта.

       msUpData:=TMemoryStream.Create;
           http.Get('http://....ru', msUpData);


    лучше так.
 
Конференция "Начинающим" » Докачка файлов через idhttp. [D7, WinXP]
Есть новые Нет новых   [118983   +106][b:0][p:0.002]