簡體   English   中英

只下載文件的一部分

[英]Downloading just part of a file

我想使用 go 從 Internet 下載類文本文件的一部分。 我想從中下載的網站似乎不尊重 curl --max-filesize--range 此外,我讀到 http MaxBytesReader仍然下載整個文件,但只存儲其中的一部分。

有沒有辦法只獲取文件的第一個 kb 然后關閉連接? 相當於在 chrome 上加載大頁面時按“x”。 我在想我可以運行一個將網站讀取到文件的線程,然后在一兩毫秒后終止該線程。 這可能嗎?

一種無需太多錯誤處理的簡單方法(必須添加可能是):

import (
    "fmt"
    "io"
    "io/ioutil"
    "net/http"
)

const readLimit = 1024 // bytes

func main() {
    resp, err := http.Get("http://example.com/")
    if err != nil {
       // handle error
    }

    fixedReader := io.LimitedReader{R: resp.Body, N: readLimit}

    data, _ := ioutil.ReadAll(fixedReader)
    resp.Body.Close()
    fmt.Println(string(data))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM