如何限制桌面应用程序可以从在线服务器下载的文件

时间:2009-11-30 18:16:34

标签: http sockets servlets client-server

我能想到的最接近的例子是iTunes。我正在考虑一个服务器存储大量文件的系统,每个用户只能访问他们付费的用户。使用桌面应用程序,他们可以将这些应用程序下载到本地PC,并将其作为常规文件存储。

怎么可能接近这个?我可以看到几个可能的选项,并有一些初步想法,但欢迎对这些或其他想法的反馈。如果您发布首选设计,人们可以对它们进行投票!

1)使用HTTP请求,响应是文件数据。然后,一个简单的servlet(或类似的)可以作为下载文件的控件。 PRO:很容易做到 CONs:看起来有点hacky,你会如何显示进度条?

2)使用套接字和将数据传输到服务器的自定义服务器应用程序 PRO:也许性能更高(?),可以发送大小合适的数据块 CONs:在客户端做一点工作,编写一个全天候运行的自定义服务器端应用程序要多得多

提前致谢。有人请编辑我的标签,我想不出合适的标签!

2 个答案:

答案 0 :(得分:3)

  

使用HTTP请求,响应是文件数据。然后,一个简单的servlet(或类似的)可以作为下载文件的控件。 PRO:容易做CONs:看起来有点hacky,你会如何显示进度条?

我不明白为什么这是hacky?您的应用程序将使用用户的用户名和密码进行身份验证(如果您希望它像iTunes一样工作)并根据权限级别获取文件。进度条很容易实现,因为您将在响应中获得content-length标头。这是一种比FTP更灵活的方法 - 但如果FTP已经完成了你需要的一切,那就去做吧。

答案 1 :(得分:1)

如上所述,FTP就是您所需要的。要控制每个用户,每个文件权限可以创建一个系统用户,然后您可以应用filesystem level ACLs。然后,像PureFTPd这样的FTP服务器将允许您使用具有指定权限的系统帐户登录。