讓使用者上傳檔案、存在伺服器的某個目錄底下,是很常見的需求。最直覺的寫法只要兩行,但這兩行藏了三個問題:檔名可以跳出目錄、寫到一半當機會留下殘檔、讀檔時可能被一個 FIFO 卡住整個 goroutine。 這篇從最直覺的寫法開始,逐一修掉這三個問題。主角是 Go 1.24 新增的 os.Root。