func uploadCacheFromReader()

in http-cache-action/proxy/proxy.go [166:188]


func uploadCacheFromReader(cacheId int, body io.Reader) error {
	resourceUrl := getCacheApiUrl(fmt.Sprintf("caches/%d", cacheId))
	readBufferSize := int(1024 * 1024)
	readBuffer := make([]byte, readBufferSize)
	bufferedBodyReader := bufio.NewReaderSize(body, readBufferSize)
	bytesUploaded := 0
	for {
		n, err := bufferedBodyReader.Read(readBuffer)

		if n > 0 {
			uploadCacheChunk(resourceUrl, readBuffer[:n], bytesUploaded)
			bytesUploaded += n
		}

		if err == io.EOF || n == 0 {
			break
		}
		if err != nil {
			return err
		}
	}
	return commitCache(cacheId, bytesUploaded)
}