2009-06-16 38 views
0

我被要求实现文件上传程序。该程序是一个Java Web Start应用程序,负责将CD的内容上传到Web应用程序。这里有两个要求:上传多个大文件时允许注销

  1. 上传器应该在后台以最小的交互操作(没有丰富的GUI)。
  2. 用户可能不希望看到正在上传的文件。在上传者仍在运行时,用户应该能够从系统注销。即使用户注销,上传器也必须继续。

我的直觉是#2在最好的情况下是不安全的,在最坏的情况下是不可能的。基本上,要实现这样的用例,您需要为上传器创建一个新的会话ID;独立于原始会话,并且没有用户密码。

有没有人有类似的用例?如果是这样,你采取了什么方法?

+0

“用户注销”是什么意思? – akarnokd 2009-06-17 13:22:30

+0

用户注销=会话ID无效,以便用户在他/她返回时必须重新登录。 – 2009-06-17 17:25:05

回答

1

即使用户注销,我也不确定为何这很复杂。

会话在登录时启动,分配会话ID。

用户开始上传带有文件名中会话标识信息的文件。 例如session_id_user_name.DAT

用户注销

文件完成后,在主机后台进程识别基于会话ID信息,移动文件位置。

用户在以后的

文件将被识别并绑定到账户重新登录。

安全性不是问题,因为文件流自启动以来仍在进行中。一旦用户重新登录,会话信息就可以被串行化和反序列化。在任何情况下,文件流都可以完全无人看管。

也许我已经过分简化了这一点,但它看起来很简单。

+0

对于我们的上传过程,我们正在流式传输CD的内容......这是许多文件(每个服务器端往返)。所以每个新上传需要一个有效的会话。 – 2009-06-17 12:54:09

1

从用户POV我看不到有关的#2。用户认为,如果他们“注销”,那么任何当前的操作都将被取消,他们很可能会关闭他们的电脑 - 在这种情况下,您的传输将无法继续进行。让他们最小化界面到右下角的小图标(有脑屁的人不会想到他们叫什么)Windows中的任务栏。