java - 如何使用Java创建用于文件上传的代理服务器?

标签 java file servlets proxy server

我必须创建一个用于文件上传的代理,但问题是我不必在代理服务器上存储整个文件。我的代理必须接受非常大的文件(大小高达 80 GB 的文件)并将整个文件存储在对象存储(openstack swift)中。但代理不必将整个文件保留在 RAM 或磁盘上。代理必须像管道一样工作。
如何创建这样的系统?

最佳答案

简单地创建一个服务器套接字来接受请求,并为收到的每个请求打开一个到目标(文件系统、数据库、云存储等)的输出流。然后执行一个读取字节 block 的循环,例如从输入流中获取 4K 字节,然后将这些 4K 字节写入输出流。继续此操作,直到没有更多字节可从输入中读取。关闭输入流并刷新并关闭输出流。请参阅此处的示例

Connecting an input stream to an outputstream

关于java - 如何使用Java创建用于文件上传的代理服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065306/

相关文章:

java.nio channel 缓冲区流术语

java - 尝试使用回收者 View 时出现问题

python - 使用 python watchdog 检查特定文件是否被修改

java - 从java上的查询字符串中获取带有字符 '#'的参数

java - Pax-web、jetty和RewriteHandler导致404

java - 在 HashMap 中设置默认值

数据库与平面文件

android - Cordova android 文件系统困难

java - 使用 servlet 注销

java - 如何在 servlet 上运行一些在 servlet 发送响应后继续运行的东西?