mirror of
https://github.com/rclone/rclone.git
synced 2025-02-02 03:29:51 +01:00
pikpak: optimize file move by removing unnecessary readMetaData()
call
Previously, the code relied on calling `readMetaData()` after every file move operation. This introduced an unnecessary API call and potentially impacted performance. This change removes the redundant `readMetaData()` call, improving efficiency.
This commit is contained in:
parent
6507770014
commit
cdcf0e5cb8
@ -1049,7 +1049,7 @@ func (f *Fs) Move(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create temporary object
|
// Create temporary object - still missing id, mimeType, gcid, md5sum
|
||||||
dstObj, dstLeaf, dstParentID, err := f.createObject(ctx, remote, srcObj.modTime, srcObj.size)
|
dstObj, dstLeaf, dstParentID, err := f.createObject(ctx, remote, srcObj.modTime, srcObj.size)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -1061,7 +1061,12 @@ func (f *Fs) Move(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Manually update info of moved object to save API calls
|
||||||
dstObj.id = srcObj.id
|
dstObj.id = srcObj.id
|
||||||
|
dstObj.mimeType = srcObj.mimeType
|
||||||
|
dstObj.gcid = srcObj.gcid
|
||||||
|
dstObj.md5sum = srcObj.md5sum
|
||||||
|
dstObj.hasMetaData = true
|
||||||
|
|
||||||
if srcLeaf != dstLeaf {
|
if srcLeaf != dstLeaf {
|
||||||
// Rename
|
// Rename
|
||||||
@ -1069,16 +1074,7 @@ func (f *Fs) Move(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("move: couldn't rename moved file: %w", err)
|
return nil, fmt.Errorf("move: couldn't rename moved file: %w", err)
|
||||||
}
|
}
|
||||||
err = dstObj.setMetaData(info)
|
return dstObj, dstObj.setMetaData(info)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Update info
|
|
||||||
err = dstObj.readMetaData(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("move: couldn't locate moved file: %w", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return dstObj, nil
|
return dstObj, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user