我對大文件分塊上傳的概念是,通過offset每次讀取1M文件流,再通過http發送Content-Range和這1M文件流,換句話說分塊上傳是不是需要每次都發送請求頭?我看見到有些代碼,只發送一次文件頭,然後不斷發送文件流,雖然沒成功,但是留下了疑惑
通過 HTTP 進行大數據傳輸,不是好的選擇。
如果一定要用 HTTP,傳輸時 HTTP 協議頭肯定是不可少的。至於其中的數據,由於每次 HTTP 都是一次 Socket 連接、數據傳輸、斷開的過程,加上發送分塊後,各塊的傳輸是由發送端控制的,只需要按順序發送。這樣服務器端可以不需要處理分塊信息,就可以完成文件的接收。
但如果為了加快傳輸速度,想做類似於分塊同時傳輸的過程,則必須要加入分塊信息。以方便服務器按分塊的信息同時接收不同的塊,並保證最後拼接的文件是正確的。