KIOGDrive::copy doesn't resolve the destGDriveUrl's new parent into a destDirId before passing it to FileCopyJob, which means it'll be sending an illegal request body to the Google Drive API - for example:
{ \"editable\":false, \"kind\":\"drive#file\", \"lastViewedByMeDate\": \"2018-01-10T19:38:11 Z\", \"modifiedDate\": \"2018-01-10T19:38:11 Z\", \"parents\":[ { \"id\":\"testfoldertwo\" } ], \"title\":\"yetanothertestfile.txt\" }
The "id" field should contain a valid parent ID rather than an originalFilename, and this patch resolves the right parent ID in one of two ways:
- If the target folder of the copy command is the root of the GDrive, resolve the rootFolderId from the destAccountId.
- If the target folder of the copy command is any other directory on the GDrive, resolve the fileId of the destGDriveUrl's parentPath.
The resulting parent ID is passed to FileCopyJob as the parent of the new cloned file, which then successfully processes the API call.
BUG: 376735
FIXED-IN: 1.2.2