mirror of
https://github.com/rclone/rclone.git
synced 2025-12-06 00:03:32 +00:00
backends: make NewObject return fs.ErrorIsDir if possible
This changes the interface to NewObject so that if NewObject is called on a directory then it should return fs.ErrorIsDir if possible without doing any extra work, otherwise fs.ErrorObjectNotFound. Tested on integration test server with: go run integration-test.go -tests backend -run TestIntegration/FsMkdir/FsPutFiles/FsNewObjectDir -branch fix-stat -maxtries 1
This commit is contained in:
@@ -303,7 +303,7 @@ func (f *Fs) findObject(rootNode *mega.Node, file string) (node *mega.Node, err
|
||||
if err == mega.ENOENT {
|
||||
return nil, fs.ErrorObjectNotFound
|
||||
} else if err == nil && node.GetType() != mega.FILE {
|
||||
return nil, fs.ErrorNotAFile
|
||||
return nil, fs.ErrorIsDir // all other node types are directories
|
||||
}
|
||||
return node, err
|
||||
}
|
||||
@@ -958,7 +958,7 @@ func (o *Object) Size() int64 {
|
||||
// setMetaData sets the metadata from info
|
||||
func (o *Object) setMetaData(info *mega.Node) (err error) {
|
||||
if info.GetType() != mega.FILE {
|
||||
return fs.ErrorNotAFile
|
||||
return fs.ErrorIsDir // all other node types are directories
|
||||
}
|
||||
o.info = info
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user