我必须为文件上传创建代理,但问题是我不必在代理服务器上存储整个文件。我的代理必须接受非常大的文件(大小高达80 GB的文件)并将整个文件存储在对象存储(openstack swift)中。但代理不必将整个文件保存在RAM或磁盘上。代理必须像管道一样行事。
如何创建这样的系统?
答案 0 :(得分:2)
简单地创建服务器套接字以接受请求,并为每个收到的请求打开输出流到目标(文件系统,数据库,云存储......)。然后做一个读取字节的循环,例如4K字节,从输入流中然后将那些4K字节写入输出流。继续这一步,直到没有更多的字节从输入中读取。关闭输入流并刷新并关闭输出流。请参阅此处以获取示例