![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
Добрый день. Есть следующая задача: необходимо получить хеш файла (md5). Делаю следующий образом: загружаю содержимое файла в переменную, дальше через класс MD5.as беру хеш, так получаю md5_file. Все классно работает на маленьких файлах, если же файлы большие например метров 10 (не говоря уже за 100 мб и больше), то зависает и отбраковывает ошибку т.к. не вкладывается в 15 сек.
Вопрос может можно как то более по людски получать хеш файлов? Или как то по другому читать содержимое больших файлов? На данный момент читаю так: var loader:URLLoader = new URLLoader(new URLRequest("E:/mp3/Artyr.mp3")); loader.addEventListener(Event.COMPLETE, completeHandler); function completeHandler(event:Event):void { var loadedText:URLLoader = URLLoader(event.target); trace (loadedText.data); } Уже второй день трясу Инет - ничего не могу найти. Заранее спасибо за помощь! |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 259
|
1. А может лучше у файлов crc брать, а не мд5, он как бы значительно быстрее?
2. Пробовали более быстрый мд5 "от Бладди" (http://www.flasher.ru/forum/blog.php?b=217)? (с) ![]() Добавлено через 4 минуты 3. http://code.google.com/p/as3corelib/...o/MD5Stream.as вот кстати еще что, если это привязать к blooddy.crypto - то может получиться что нужно (хотя сами привязать не сможете, попробуйте прям тот мд5стрим) Последний раз редактировалось Сайлас; 14.07.2010 в 00:29. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
Спасибо за ответ! Но я не программирую на Флэшь и знаю только основы...
Насколько я понимаю моя проблема не в том, что медленно работает обработка мд5 (хотя может до этого просто не доходит ), а в том что медленно грузит в переменную содержимое файла (например если это ави на метров этак 700, то "мама не горюй"...). Может есть какой то более оптимальный способ получения хеш файла? |
|
|||||
|
стервочка (я мужик)
|
загрузка происходит асинхронно. она не может вызвать ошибку таймаута. а вот md5 может. моя библиотека работает в ~120 раз быстрее. попробуйте.
|
|
|||||
|
Регистрация: Mar 2008
Сообщений: 259
|
Цитата:
Если разговор о 100-700 метровом файле, то как браузер отнесется к тому, что флеш попытается аллокейтить столько в памяти? И наверное так или иначе стримовая обработка мд5 будет лучше. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
Не подскажете как правильно подключить библиотеку, как правильно вызвать функцию и записать результата в переменную?...
Извиняюсь за глупые вопросы, но AS для меня абсолютно ново... |
|
|||||
|
стервочка (я мужик)
|
Сайлас, ну если подсчёт md5 за 200+ секунд приемлем, тогда стрим будет лучше.
chiffa_cff, а как Вы это делали с as3corelib? как вы её подключали? |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 259
|
А если к вашему мд5 написать стримовую обработочку, что потенциально получится?
|
|
|||||
|
Регистрация: Jul 2010
Сообщений: 7
|
BlooDHounD, нашел готовый пример и отредактировал
Так что если есть возможность выложить пример буду весьма признателен....Последний раз редактировалось chiffa_cff; 14.07.2010 в 15:24. |
|
|||||
|
стервочка (я мужик)
|
chiffa_cff, ну с моей библиотекой можно поступить так же.
Сайлас, у меня ~5 метров обрабатывается за ~31ms ( можете сравнить с корелиб ). но вообще загрузить 700 метров скорее всего не удастся. ФП просто не даст обработать такой большой бинарник. скажет, что не может выделить столько памяти. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|