0
我必須創建一個代理文件上傳,但問題是我不必在代理服務器上存儲整個文件。我的代理必須接受非常大的文件(大小高達80 GB的文件),並將整個文件存儲在對象存儲中(openstack swift)。但代理不必將整個文件保存在RAM或磁盤上。代理服務器必須像管道一樣行事。
如何創建這樣的系統?如何使用Java爲文件上傳創建代理服務器?
我必須創建一個代理文件上傳,但問題是我不必在代理服務器上存儲整個文件。我的代理必須接受非常大的文件(大小高達80 GB的文件),並將整個文件存儲在對象存儲中(openstack swift)。但代理不必將整個文件保存在RAM或磁盤上。代理服務器必須像管道一樣行事。
如何創建這樣的系統?如何使用Java爲文件上傳創建代理服務器?
簡單地創建一個服務器套接字來接受請求,併爲接收到的每個請求打開一個輸出流到目標(文件系統,數據庫,雲存儲......)。然後做一個讀取字節卡盤的循環,例如4K字節,然後將這些4K字節寫入輸出流。繼續,直到沒有更多的字節要從輸入中讀取。關閉輸入流並刷新並關閉輸出流。這裏舉一個例子