Make PointerSmudgeObject only download to the media directory
This commit is contained in:
parent
1d87b73ef0
commit
f905afa270
@ -2,12 +2,9 @@ package lfs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"github.com/cheggaaa/pb"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
|
||||
"github.com/cheggaaa/pb"
|
||||
)
|
||||
|
||||
type Downloadable struct {
|
||||
@ -166,21 +163,12 @@ func (q *DownloadQueue) Process() {
|
||||
go func(n int) {
|
||||
|
||||
for d := range q.downloadc {
|
||||
fullPath := filepath.Join(LocalWorkingDir, d.Pointer.Name)
|
||||
output, err := os.Create(fullPath)
|
||||
if err != nil {
|
||||
q.errorc <- Error(err)
|
||||
f := atomic.AddInt64(&q.finished, 1)
|
||||
q.bar.Prefix(fmt.Sprintf("(%d of %d files) ", f, q.files))
|
||||
q.wg.Done()
|
||||
continue
|
||||
}
|
||||
|
||||
cb := func(total, read int64, current int) error {
|
||||
q.bar.Add(current)
|
||||
return nil
|
||||
}
|
||||
if err := PointerSmudgeObject(output, d.Pointer.Pointer, d.Object, cb); err != nil {
|
||||
|
||||
if err := PointerSmudgeObject(d.Pointer.Pointer, d.Object, cb); err != nil {
|
||||
q.errorc <- Error(err)
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,9 @@ func PointerSmudge(writer io.Writer, ptr *Pointer, workingfile string, cb CopyCa
|
||||
return nil
|
||||
}
|
||||
|
||||
func PointerSmudgeObject(writer io.Writer, ptr *Pointer, obj *objectResource, cb CopyCallback) error {
|
||||
// PointerSmudgeObject uses a Pointer and objectResource to download the object to the
|
||||
// media directory. It does not write the file to the working directory.
|
||||
func PointerSmudgeObject(ptr *Pointer, obj *objectResource, cb CopyCallback) error {
|
||||
mediafile, err := LocalMediaPath(obj.Oid)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -58,23 +60,20 @@ func PointerSmudgeObject(writer io.Writer, ptr *Pointer, obj *objectResource, cb
|
||||
}
|
||||
}
|
||||
|
||||
var wErr *WrappedError
|
||||
if statErr != nil || stat == nil {
|
||||
wErr = downloadObject(writer, ptr, obj, mediafile, cb)
|
||||
} else {
|
||||
wErr = readLocalFile(writer, ptr, mediafile, cb)
|
||||
}
|
||||
wErr := downloadObject(ptr, obj, mediafile, cb)
|
||||
|
||||
if wErr != nil {
|
||||
sendApiEvent(apiEventFail)
|
||||
return &SmudgeError{obj.Oid, mediafile, wErr}
|
||||
if wErr != nil {
|
||||
sendApiEvent(apiEventFail)
|
||||
return &SmudgeError{obj.Oid, mediafile, wErr}
|
||||
}
|
||||
}
|
||||
|
||||
sendApiEvent(apiEventSuccess)
|
||||
return nil
|
||||
}
|
||||
|
||||
func downloadObject(writer io.Writer, ptr *Pointer, obj *objectResource, mediafile string, cb CopyCallback) *WrappedError {
|
||||
func downloadObject(ptr *Pointer, obj *objectResource, mediafile string, cb CopyCallback) *WrappedError {
|
||||
reader, size, wErr := DownloadObject(obj)
|
||||
if reader != nil {
|
||||
defer reader.Close()
|
||||
@ -105,7 +104,7 @@ func downloadObject(writer io.Writer, ptr *Pointer, obj *objectResource, mediafi
|
||||
return Errorf(err, "Error buffering media file.")
|
||||
}
|
||||
|
||||
return readLocalFile(writer, ptr, mediafile, nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
func downloadFile(writer io.Writer, ptr *Pointer, workingfile, mediafile string, cb CopyCallback) *WrappedError {
|
||||
|
Loading…
Reference in New Issue
Block a user