func SaveTo()

in pkg/download/save.go [19:34]


func SaveTo(ctx *log.Context, d Downloader, dst string, mode os.FileMode) (int64, error) {
	f, err := os.OpenFile(dst, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, mode)
	if err != nil {
		return 0, errors.Wrap(err, "failed to open file for writing")
	}
	defer f.Close()

	body, err := WithRetries(ctx, d, ActualSleep)
	if err != nil {
		return 0, errors.Wrap(err, "failed to download file")
	}
	defer body.Close()

	n, err := io.CopyBuffer(f, body, make([]byte, writeBufSize))
	return n, errors.Wrapf(err, "failed to write to file: %s", dst)
}