Как ограничить файлы, которые приложение для настольных компьютеров может загружать с онлайн-сервера - PullRequest
0 голосов
/ 30 ноября 2009

Самый близкий пример, который я могу вспомнить, это iTunes. Я имею в виду систему, в которой сервер хранит множество файлов, и у каждого пользователя есть доступ только к тем, за которые он заплатил. Используя настольное приложение, они могут загрузить их на свой локальный ПК, где они хранятся как обычные файлы.

Как можно подойти к этому? Я вижу несколько возможных вариантов, и у меня есть некоторые начальные мысли, но я хотел бы получить отзывы об этих или других идеях. Если вы разместите свой предпочтительный дизайн, люди могут проголосовать за них!

1) Используйте HTTP-запросы, а ответом являются данные файла. Тогда простой сервлет (или аналогичный) может действовать как элемент управления загрузкой файлов. ПРО: легко сделать Минусы: кажется немного хакерским, как бы вы отобразили индикатор выполнения?

2) Используйте сокеты и пользовательское серверное приложение, которое передает данные на сервер Плюсы: возможно, более производительный (?), Может отправлять данные большими порциями Минусы: немного больше работы на стороне клиента, совсем немного больше для написания пользовательского приложения на стороне сервера, которое работает 24/7

Заранее спасибо. Кто-то, пожалуйста, отредактируйте мои теги, я не могу думать о правильных!

Ответы [ 2 ]

3 голосов
/ 28 мая 2010

Используйте HTTP-запросы, а ответом являются данные файла. Тогда простой сервлет (или аналогичный) может действовать как элемент управления загрузкой файлов. Плюсы: легко сделать Минусы: кажется немного хакерским, как бы вы отобразили индикатор выполнения?

Не понимаю, почему это хакерство? Ваше приложение будет аутентифицироваться с использованием имени пользователя и пароля пользователя (если вы хотите, чтобы оно работало как iTunes) и извлекать файлы в соответствии с уровнем разрешений. Индикатор выполнения легко сделать, потому что вы получите заголовок content-length в ответе. Это более гибкий подход, чем FTP - но если FTP уже делает все, что вам нужно, сделайте это.

1 голос
/ 28 мая 2010

Как уже говорилось, FTP - это то, что вам нужно. Для управления для каждого пользователя, для прав доступа к файлу вы можете создать одного системного пользователя, а затем применить ACL на уровне файловой системы . Затем FTP-сервер, такой как PureFTPd , позволит вам войти с системными учетными записями с указанными разрешениями.

...