Solon Web 文件上傳的最佳實踐

文件上傳是 Web 開發中最常見的一個應用場景。一般在處理數據時,會有兩種常見的方案:直接把文件流放在內存裏,或者把文件流先緩衝到磁盤。

1、如果是高頻且文件極小

使用純內存模式,默認即可。如果高頻小文件,是不適合用“臨時文件模式”的,磁盤可能容易刷壞。只能多配些內存!

2、如果是低頻或者文件很大

建議使用“臨時文件模式”。即上傳的數據流,先緩存爲臨時文件(落盤),再以本地文件流形式提供使用。這個非常省內存。比如,上傳 1GB 的文件,服務內存幾乎不會上升。

  • 添加配置

使用臨時文件需要通過配置開啓

server.request.useTempfile: true #默認 false
  • 用後主動刪除(建議,不管有沒有用“臨時文件模式”都主動刪除)

使用完後,注意要刪掉

@Controller
public class DemoController{
    @Post
    @Mapping("/upload")
    public void upload(UploadedFile file) { 
        try{
            file.transferTo(new File("/demo/user/logo.jpg")); 
        } finally {
            file.delete();
        }
    }
}   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章