как обрабатывать загрузку 100 Мб для пользователей - PullRequest
2 голосов
/ 18 октября 2008

Мне предложили создать специальное ftp-приложение, которое пользователи будут загружать, чтобы иметь возможность загружать видеофайлы (до 100 МБ).

  • они хотят, чтобы это было идиотским доказательством (то есть легким для не-компьютерных людей). Я предполагаю, что настройка ftp-приложения, такого как FileZilla, с их именем пользователя и паролем была бы слишком сложной для большинства пользователей.
  • кроссплатформенная (ай)

Конечно, я не первый, кто подошел к проблеме того, как дать пользователям возможность загружать огромные файлы. Хотите знать, если кто-нибудь может дать мне какие-либо советы.

Ответы [ 8 ]

1 голос
/ 18 октября 2008

(Должен ли это быть FTP? FTP имеет проблемы с брандмауэрами, режимом ASCII и, конечно, пароль в открытом виде.)

На многих языках есть библиотеки FTP, которые вы можете связать вместе с небольшим количеством UI-клея, чтобы создать собственное простое приложение для загрузки. Например, Python имеет ftplib в стандартной библиотеке. В прошлый раз, когда я делал это, был, например, в C с ftplib из Pfau, но современные языки сценариев будет намного легче писать, если вы не возражаете против накладных расходов на упаковку вашего приложения с интерпретатором.

У вас есть .NET в ваших тегах ... в стандартной библиотеке классов для .NET нет FTP, но вы, безусловно, можете свободно загружать сторонние библиотеки. С другой стороны, вы говорите кросс-платформенный, поэтому я не уверен, действительно ли вы говорите о .NET на клиенте.

Что вы можете сделать, это предоставить несколько способов загрузки, например, базовую загрузку файла HTTP *, встроенную в ваш сайт, которую каждый будет знать, как использовать, и стандартный [S?] FTP-интерфейс для опытных пользователей, которые будут быть в состоянии управлять клиентом FTP. Не то чтобы работа с FTP-клиентом действительно , что сложно: просто скажите им, чтобы они вставили URL-адрес ftp: // в проводник Windows, и большинству людей все в порядке.

*: в идеале использовать обратную связь AJAX, чтобы пользователь знал, как идет загрузка, и / или, возможно, загрузчик Flash. И не забудьте отключить / включить любые правила тайм-аута сценария на сервере, чтобы он не сдавался на полпути при загрузке. HTTP-загрузка никогда не будет оптимальной для файлов порядка 100 МБ, но вы, безусловно, можете улучшить стандартную, довольно дурацкую невосприимчивость браузеров здесь.

0 голосов
/ 20 октября 2008

спасибо, ребята, должен сказать, что это был самый полный ответ, который я когда-либо получал на форуме.

Думаю, я предложу 2 маршрута, таких как упомянутый Бобинс

1) http с использованием SWFUpload (bh213), я использовал его раньше. Он довольно прост в настройке и имеет хороший пользовательский интерфейс

2) тогда предложите вариант ftp. Либо с помощью браузера, либо что-то вроде filezilla.

0 голосов
/ 18 октября 2008

Загрузка 100 МБ файлов не сложнее, чем 1 КБ файлов. Вы должны просто убедиться, что приемник (в данном случае сервер) не пытается получить весь файл в память. Сервер может немедленно записать данные на диск или в CLB базы данных. Сервер читает из входного потока и записывает в выходной поток, при этом требуется очень мало ресурсов.

0 голосов
/ 18 октября 2008

Хотя не FTP, вы можете попробовать использовать swfupload для загрузки файлов через HTTP. Мы используем его в течение ок. Загрузка 100 МБ файлов на IIS, и это работает достаточно хорошо.

Обратите внимание, что вы должны установить максимальный размер запроса в web.config равным 100 или более МБ ...

0 голосов
/ 18 октября 2008

Как насчет создания простого приложения Adobe Air с JS и HTML? Я полагаю, что теперь у него есть возможность подключения через сокет FTP. Вы также можете использовать сборку в БД для хранения сведений о том, что отправлено куда, небольшой размер, кроссплатформенность, и вы можете встроить его в то, что вам лучше всего (flash, flex, JS / HTML).

У меня аналогичные требования, и я смотрю на использование Adobe air и jQuery или Ext для решения.

0 голосов
/ 18 октября 2008

Если пользователю нужно загрузить большой файл, обратите внимание, что у него есть своего рода функция возобновления.

Является ли FTP единственным вариантом? Если вы можете реализовать что-то на базе P2P (bittorrent), вы можете получить функциональность возобновления и целостности для больших файлов.

Вот 2, которые я получил из поисковой библиотеки googling

http://sourceforge.net/projects/libbt/

http://www.codeproject.com/KB/cpp/FTKernelAPI.aspx

0 голосов
/ 18 октября 2008

Возможно, вы захотите подумать о стратегиях единого входа, если не хотите, чтобы пользователи вводили имя пользователя и пароль.

0 голосов
/ 18 октября 2008

Загрузить куда?

Вы можете заставить всех установить Dropbox и создать общий ресурс из корпоративного аккаунта, к которому они все имеют доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...