ranger
go/ranger (HowettNET GitLab)
DHowett/ranger
ranger - io.ReaderAt with range requests!⌗
Package ranger provides an implementation of io.ReaderAt and io.ReadSeeker which makes partial document requests. Ranger ships with a range fetcher that operates on an HTTP resource using the Range: header.
INSTALL⌗
$ go get howett.net/ranger
USE⌗
package main
import (
"archive/zip"
"io"
"howett.net/ranger"
"net/url"
"os"
)
func main() {
url, _ := url.Parse("http://example.com/example.zip")
reader, _ := ranger.NewReader(&ranger.HTTPRanger{URL: url})
length, _ := reader.Length()
zipreader, _ := zip.NewReader(reader, length)
data := make([]byte, zipreader.File[0].UncompressedSize64)
rc, _ := zipreader.File[0].Open()
io.ReadFull(rc, data)
rc.Close()
}