1
A
回答
1
我不確定「高效」是什麼意思,所以我會假設你的意思是大文件流式傳輸,而不是緩衝。
標準http.FileServer
最終使用the serveContent
function寫入數據,這需要io.ReadSeeker
作爲內容(幸運的是,文件就是這樣)。
然後使用io.Copy
複製內容,在一般情況下(儘管可能不是您常見的情況,請參閱下文),這意味着copyBuffer
。將使用32KB緩衝區。
因此,假設http.ResponseWriter
的執行不緩衝其輸入(it doesn't,另請參閱chunked writer),則內存利用率應該是恆定的。
但是當作者支持ReadFrom
方法時,io.Copy
will use that instead。由於http.response
(ResponseWriter
接口的標準實現)implements the ReadFrom method,它將被用來代替copyBuffer
。這個實現反過來會盡可能地嘗試使用系統調用sendfile
(os.File
就是這種情況),這是一個更有效的意義(數據不需要經過進程內存空間,所以差不多當它得到)。
換句話說,我認爲可以說內置的net/http
包已經支持高效的大文件流式傳輸。
相關問題
- 1. 從Android手機到服務器的視頻文件傳輸
- 2. 上傳視頻文件到服務器
- 3. 從http服務傳輸大文件
- 4. 要從服務器流式傳輸視頻的軟件
- 5. 上傳服務器上的大視頻文件
- 6. 如何在服務器上上傳大視頻文件?
- 7. 高效地將輸出上傳到服務器
- 8. 從服務器上傳視頻到Facebook
- 9. Go中的TCP客戶機/服務器文件傳輸
- 10. 從iOS設備發送大視頻文件到WebDav服務器
- 11. 從iPhone上傳視頻文件到服務器
- 12. 將視頻文件從iPhone庫上傳到FTP服務器
- 13. 使用Jmeter從本地機器傳輸文件到服務器
- 14. cordova文件傳輸插件沒有上傳視頻到服務器
- 15. 從文本文件中的URL從服務器到服務器傳輸文件
- 16. 將文件從FTP服務器傳輸到本地unix服務器
- 17. 從PhotoLibrary上傳大視頻到服務器
- 18. 上傳大視頻從Android PHP服務器崩潰應用
- 19. 將大型視頻從iPhone上傳到網絡服務器
- 20. 從服務器播放視頻URL而不流式傳輸
- 21. 如何從服務器流式傳輸視頻到iPad?
- 22. 從許多攝像機流傳輸視頻到RED5服務器
- 23. 視頻從服務器端傳輸到客戶端側
- 24. 使用PHP從服務器流式傳輸視頻
- 25. 從服務器到服務器的文件傳輸
- 26. 傳輸文件!從unix服務器到linux服務器
- 27. 上傳大型視頻文件從Android
- 28. 從本地到ftp服務器在c傳輸文件#
- 29. 將文件從本地桌面傳輸到SAS服務器
- 30. 不能上傳大於500kb的視頻文件大小到Android服務器中的Android服務器