func downloadFile(writer io.Writer, ptr *Pointer, workingfile, mediafile string, cb CopyCallback) error { fmt.Fprintf(os.Stderr, "Downloading %s (%s)\n", workingfile, pb.FormatBytes(ptr.Size)) reader, size, err := Download(filepath.Base(mediafile)) if reader != nil { defer reader.Close() } if err != nil { return Errorf(err, "Error downloading %s.", mediafile) } if ptr.Size == 0 { ptr.Size = size } mediaFile, err := contentaddressable.NewFile(mediafile) if err != nil { return Errorf(err, "Error opening media file buffer.") } _, err = CopyWithCallback(mediaFile, reader, ptr.Size, cb) if err == nil { err = mediaFile.Accept() } mediaFile.Close() if err != nil { return Errorf(err, "Error buffering media file.") } return readLocalFile(writer, ptr, mediafile, workingfile, nil) }
func downloadFile(writer io.Writer, ptr *Pointer, workingfile, mediafile string, cb CopyCallback) error { fmt.Fprintf(os.Stderr, "Downloading %s (%s)\n", workingfile, pb.FormatBytes(ptr.Size)) reader, size, err := Download(filepath.Base(mediafile), ptr.Size) if reader != nil { defer reader.Close() } if err != nil { return Errorf(err, "Error downloading %s: %s", filepath.Base(mediafile), err) } if ptr.Size == 0 { ptr.Size = size } if err := bufferDownloadedFile(mediafile, reader, ptr.Size, cb); err != nil { return Errorf(err, "Error buffering media file: %s", err) } return readLocalFile(writer, ptr, mediafile, workingfile, nil) }