Загрузка большого файла - PullRequest
       26

Загрузка большого файла

12 голосов
/ 30 августа 2008

Internet Explorer имеет ограничение на скачивание файлов 4 ГБ (2 ГБ в IE6). Firefox не имеет этой проблемы (еще не тестировал сафари) (Подробнее здесь: http://support.microsoft.com/kb/298618)

Я работаю над сайтом, который позволит пользователю загружать очень большие файлы (до 100 ГБ и более)

Каков наилучший способ сделать это без использования FTP . Конечный пользователь должен иметь возможность загружать файл из браузера через HTTP. Я не думаю, что Flash или Silverlight могут сохранять файлы на клиенте, насколько я знаю, они не обрежут его.

Я предполагаю, что нам понадобится ActiveX или Java-апплет, чтобы осуществить это. Что-то вроде менеджера загрузок, который использует MSDN.

Кто-нибудь знает о коммерческом (или бесплатном) компоненте, который будет это делать? Мы не хотим, чтобы пользователю приходилось устанавливать менеджер загрузок «в браузере» (например, GetRight), мы хотим, чтобы он работал только с загрузками на нашем сайте.

Обновление: Вот дополнительная информация, которая поможет уточнить, что я пытаюсь сделать. Большинство файлов, превышающих 4 ГБ, будут большими видеофайлами HD (для компании, занимающейся редактированием видео). Они будут загружены пользователями через Интернет, это не будут люди из локальной сети. Мы хотим, чтобы файлы были доступны через HTTP (некоторые пользователи будут находиться за брандмауэрами, которые не разрешают FTP, Bittorrent и т. Д.). Это будет библиотека файлов, которую может загрузить конечный пользователь, поэтому мы не говорим об одноразовой большой загрузке. Будет загружаться различные большие файлы на полурегулярной основе.

Пока что Vault, предложенное @ Edmund-Tay, является наиболее близким решением. Единственная проблема заключается в том, что он не работает для файлов размером более 4 ГБ (он мгновенно завершается сбоем перед началом загрузки, они, вероятно, используют где-то 32-битное целое число, которое превышает / переполняется длиной содержимого файла).

Лучшим решением будет Java-апплет или компонент ActiveX, поскольку проблема существует только в IE, которая будет работать, как в статье @spoulson, на которую ссылается. Однако до сих пор мне не повезло найти решение, которое бы делало что-то подобное (многократные загрузки, резюме и т. Д.).

Похоже, нам, возможно, придется написать свой собственный. Другой вариант - написать приложение .Net (может быть, ClickOnce), которое связано с расширением или типом mime. Затем пользователь фактически загружает небольшой файл с веб-сервера, который открывается в приложении exe / ClickOnce, и сообщает приложению, какой файл загрузить. Так работает загрузчик MSDN. Конечный пользователь должен будет загрузить / установить EXE только один раз. Это было бы лучше, чем скачивать exe-файлы каждый раз, когда они хотели загрузить большой файл.

Ответы [ 15 ]

0 голосов
/ 30 августа 2008

Я говорю, что менеджер загрузок, установленный один раз, похож на msdn.

Но стать CDN без более оптимизированного протокола для этой работы непросто. Я не могу представить бизнес-модель, которая может быть достаточно полезной, чтобы загружать такие большие файлы в качестве основной компетенции, если вы не делаете что-то вроде msdn. Если вы создаете толстого клиента, вы, по крайней мере, получаете шанс получить больше времени для общения с пользователями, для рекламы или какой-либо другой модели дохода, поскольку вы, вероятно, заплатите сотни тысяч долларов за размещение такой услуги.

0 голосов
/ 30 августа 2008

@ ceejayoz

Я полностью согласен, но это часть требований для нашего клиента. Будет доступ по FTP, но у каждого пользователя будет возможность загрузки через HTTP или FTP. Некоторые пользователи будут находиться за корпоративными брандмауэрами, которые не разрешают FTP

Я видел, как другие сайты делали это в прошлом (MSDN, Adobe), поэтому я надеялся, что что-то уже есть, вместо того, чтобы делать это дома (и изучать Java и / или ActiveX)

0 голосов
/ 30 августа 2008

@ jjnguy Я ищу Java-апплет или компонент ActiveX, который сделает это для меня. Это не технические пользователи, поэтому мы просто хотим, чтобы они нажали «скачать», и полный файл оказался в указанном месте

0 голосов
/ 30 августа 2008

@ Леванд Проблема существует только в IE (он работает в Firefox), поэтому, хотя ActiveX будет работать только в IE, IE - единственный, для которого нам нужно обойтись.

@ travis - интересная идея. Не уверен, что это будет работать для того, что мне нужно, но я буду иметь это в виду. Я надеюсь найти что-то, чтобы интегрироваться с существующим сайтом вместо того, чтобы выходить на сторону. Это также потребовало бы от меня установки битторрент-трекера, который был бы не так прост, как кажется для этого приложения, потому что разные пользователи будут иметь разный доступ к разным файлам.

0 голосов
/ 30 августа 2008

@ Трэвис

К сожалению, он должен быть через HTTP внутри браузера пользователя. Я уточню вопрос, чтобы прояснить ситуацию.

...