mirror of
https://github.com/rclone/rclone.git
synced 2025-12-16 16:23:22 +00:00
Compare commits
1 Commits
fix-dropbo
...
fix-vfs-la
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7cba2835d |
@@ -1078,15 +1078,6 @@ func (f *Fs) Copy(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||||||
return shouldRetry(ctx, err)
|
return shouldRetry(ctx, err)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch e := err.(type) {
|
|
||||||
case files.CopyV2APIError:
|
|
||||||
// If we are doing a cross remote transfer then from_lookup/not_found indicates we
|
|
||||||
// don't have permission to read the source, so engage the slow path
|
|
||||||
if srcObj.fs != f && e.EndpointError != nil && e.EndpointError.FromLookup != nil && e.EndpointError.FromLookup.Tag == files.LookupErrorNotFound {
|
|
||||||
fs.Debugf(srcObj, "Copy failed attempting fallback: %v", err)
|
|
||||||
return nil, fs.ErrorCantCopy
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("copy failed: %w", err)
|
return nil, fmt.Errorf("copy failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1148,15 +1139,6 @@ func (f *Fs) Move(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||||||
return shouldRetry(ctx, err)
|
return shouldRetry(ctx, err)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch e := err.(type) {
|
|
||||||
case files.MoveV2APIError:
|
|
||||||
// If we are doing a cross remote transfer then from_lookup/not_found indicates we
|
|
||||||
// don't have permission to read the source, so engage the slow path
|
|
||||||
if srcObj.fs != f && e.EndpointError != nil && e.EndpointError.FromLookup != nil && e.EndpointError.FromLookup.Tag == files.LookupErrorNotFound {
|
|
||||||
fs.Debugf(srcObj, "Move failed attempting fallback: %v", err)
|
|
||||||
return nil, fs.ErrorCantMove
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("move failed: %w", err)
|
return nil, fmt.Errorf("move failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1275,15 +1257,6 @@ func (f *Fs) DirMove(ctx context.Context, src fs.Fs, srcRemote, dstRemote string
|
|||||||
return shouldRetry(ctx, err)
|
return shouldRetry(ctx, err)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch e := err.(type) {
|
|
||||||
case files.MoveV2APIError:
|
|
||||||
// If we are doing a cross remote transfer then from_lookup/not_found indicates we
|
|
||||||
// don't have permission to read the source, so engage the slow path
|
|
||||||
if srcFs != f && e.EndpointError != nil && e.EndpointError.FromLookup != nil && e.EndpointError.FromLookup.Tag == files.LookupErrorNotFound {
|
|
||||||
fs.Debugf(srcFs, "DirMove failed attempting fallback: %v", err)
|
|
||||||
return fs.ErrorCantDirMove
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fmt.Errorf("MoveDir failed: %w", err)
|
return fmt.Errorf("MoveDir failed: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -991,7 +991,6 @@ func (f *Fs) copyOrMove(ctx context.Context, src fs.Object, remote string, metho
|
|||||||
}
|
}
|
||||||
return nil, fs.ErrorCantMove
|
return nil, fs.ErrorCantMove
|
||||||
}
|
}
|
||||||
srcFs := srcObj.fs
|
|
||||||
dstPath := f.filePath(remote)
|
dstPath := f.filePath(remote)
|
||||||
err := f.mkParentDir(ctx, dstPath)
|
err := f.mkParentDir(ctx, dstPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -1014,10 +1013,9 @@ func (f *Fs) copyOrMove(ctx context.Context, src fs.Object, remote string, metho
|
|||||||
if f.useOCMtime {
|
if f.useOCMtime {
|
||||||
opts.ExtraHeaders["X-OC-Mtime"] = fmt.Sprintf("%d", src.ModTime(ctx).Unix())
|
opts.ExtraHeaders["X-OC-Mtime"] = fmt.Sprintf("%d", src.ModTime(ctx).Unix())
|
||||||
}
|
}
|
||||||
// Direct the MOVE/COPY to the source server
|
err = f.pacer.Call(func() (bool, error) {
|
||||||
err = srcFs.pacer.Call(func() (bool, error) {
|
resp, err = f.srv.Call(ctx, &opts)
|
||||||
resp, err = srcFs.srv.Call(ctx, &opts)
|
return f.shouldRetry(ctx, resp, err)
|
||||||
return srcFs.shouldRetry(ctx, resp, err)
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("Copy call failed: %w", err)
|
return nil, fmt.Errorf("Copy call failed: %w", err)
|
||||||
@@ -1111,10 +1109,9 @@ func (f *Fs) DirMove(ctx context.Context, src fs.Fs, srcRemote, dstRemote string
|
|||||||
"Overwrite": "F",
|
"Overwrite": "F",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
// Direct the MOVE/COPY to the source server
|
err = f.pacer.Call(func() (bool, error) {
|
||||||
err = srcFs.pacer.Call(func() (bool, error) {
|
resp, err = f.srv.Call(ctx, &opts)
|
||||||
resp, err = srcFs.srv.Call(ctx, &opts)
|
return f.shouldRetry(ctx, resp, err)
|
||||||
return srcFs.shouldRetry(ctx, resp, err)
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("DirMove MOVE call failed: %w", err)
|
return fmt.Errorf("DirMove MOVE call failed: %w", err)
|
||||||
|
|||||||
@@ -288,7 +288,10 @@ func (dls *Downloaders) _ensureDownloader(r ranges.Range) (err error) {
|
|||||||
// defer log.Trace(dls.src, "r=%v", r)("err=%v", &err)
|
// defer log.Trace(dls.src, "r=%v", r)("err=%v", &err)
|
||||||
|
|
||||||
// The window includes potentially unread data in the buffer
|
// The window includes potentially unread data in the buffer
|
||||||
window := int64(fs.GetConfig(context.TODO()).BufferSize)
|
//window := int64(fs.GetConfig(context.TODO()).BufferSize)
|
||||||
|
|
||||||
|
// FIXME test disable --buffer-size window
|
||||||
|
window := int64(0)
|
||||||
|
|
||||||
// Increase the read range by the read ahead if set
|
// Increase the read range by the read ahead if set
|
||||||
if dls.opt.ReadAhead > 0 {
|
if dls.opt.ReadAhead > 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user