mirror of https://github.com/rclone/rclone.git
drive, googlecloudstorage: remove SeekWrapper after googleapi fix
This commit is contained in:
parent
80000b904c
commit
ecb3c7bcef
|
@ -713,7 +713,6 @@ func (f *FsDrive) Put(in io.Reader, remote string, modTime time.Time, size int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the API request to upload metadata and file data.
|
// Make the API request to upload metadata and file data.
|
||||||
in = &fs.SeekWrapper{In: in, Size: size}
|
|
||||||
var info *drive.File
|
var info *drive.File
|
||||||
// Don't retry, return a retry error instead
|
// Don't retry, return a retry error instead
|
||||||
f.beginCall()
|
f.beginCall()
|
||||||
|
@ -944,7 +943,6 @@ func (o *FsObjectDrive) Update(in io.Reader, modTime time.Time, size int64) erro
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the API request to upload metadata and file data.
|
// Make the API request to upload metadata and file data.
|
||||||
in = &fs.SeekWrapper{In: in, Size: size}
|
|
||||||
var err error
|
var err error
|
||||||
var info *drive.File
|
var info *drive.File
|
||||||
// Don't retry, return a retry error instead
|
// Don't retry, return a retry error instead
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
package fs
|
|
||||||
|
|
||||||
import (
|
|
||||||
"io"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SeekWrapper wraps an io.Reader with a basic Seek method which
|
|
||||||
// returns the Size attribute.
|
|
||||||
//
|
|
||||||
// This is used for google.golang.org/api/googleapi/googleapi.go
|
|
||||||
// to detect the length (see getReaderSize function)
|
|
||||||
//
|
|
||||||
// Without this the getReaderSize function reads the entire file into
|
|
||||||
// memory to find its length.
|
|
||||||
type SeekWrapper struct {
|
|
||||||
In io.Reader
|
|
||||||
Size int64
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read bytes from the object - see io.Reader
|
|
||||||
func (file *SeekWrapper) Read(p []byte) (n int, err error) {
|
|
||||||
return file.In.Read(p)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Seek - minimal implementation for Google API length detection
|
|
||||||
func (file *SeekWrapper) Seek(offset int64, whence int) (int64, error) {
|
|
||||||
switch whence {
|
|
||||||
case os.SEEK_CUR:
|
|
||||||
return 0, nil
|
|
||||||
case os.SEEK_END:
|
|
||||||
return file.Size, nil
|
|
||||||
}
|
|
||||||
return 0, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Interfaces that SeekWrapper implements
|
|
||||||
var _ io.Reader = (*SeekWrapper)(nil)
|
|
||||||
var _ io.Seeker = (*SeekWrapper)(nil)
|
|
|
@ -359,7 +359,6 @@ func (f *FsStorage) ListDir() fs.DirChan {
|
||||||
func (f *FsStorage) Put(in io.Reader, remote string, modTime time.Time, size int64) (fs.Object, error) {
|
func (f *FsStorage) Put(in io.Reader, remote string, modTime time.Time, size int64) (fs.Object, error) {
|
||||||
// Temporary FsObject under construction
|
// Temporary FsObject under construction
|
||||||
o := &FsObjectStorage{storage: f, remote: remote}
|
o := &FsObjectStorage{storage: f, remote: remote}
|
||||||
in = &fs.SeekWrapper{In: in, Size: size}
|
|
||||||
return o, o.Update(in, modTime, size)
|
return o, o.Update(in, modTime, size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -556,7 +555,6 @@ func (o *FsObjectStorage) Update(in io.Reader, modTime time.Time, size int64) er
|
||||||
Updated: modTime.Format(timeFormatOut), // Doesn't get set
|
Updated: modTime.Format(timeFormatOut), // Doesn't get set
|
||||||
Metadata: metadataFromModTime(modTime),
|
Metadata: metadataFromModTime(modTime),
|
||||||
}
|
}
|
||||||
in = &fs.SeekWrapper{In: in, Size: size}
|
|
||||||
newObject, err := o.storage.svc.Objects.Insert(o.storage.bucket, &object).Media(in).Name(object.Name).PredefinedAcl(o.storage.objectAcl).Do()
|
newObject, err := o.storage.svc.Objects.Insert(o.storage.bucket, &object).Media(in).Name(object.Name).PredefinedAcl(o.storage.objectAcl).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in New Issue