avoid duplicate files in google with the same name

When it renames the temporary file, it tests if the file is already present. If so, it moves to trash the previous version to avoid duplicate files with the same name (message log: "Ignoring duplicate file name: ... on Google Drive for Google user: ...").
It doesn't handle duplicate files in Google Drive, it tries to avoid them.
You'll watch #4279 issue.
This commit is contained in:
gvmura 2017-04-21 09:53:52 +02:00 committed by GitHub
parent c4bd01456b
commit 888dfdffaf

View file

@ -386,6 +386,19 @@ class Google extends \OC\Files\Storage\Common {
}
public function rename($path1, $path2) {
// Avoid duplicate files with the same name
$testRegex = '/^.+\.ocTransferId\d+\.part$/';
if (preg_match($testRegex, $path1)) {
if ($this->is_file($path2)) {
$testFile2 = $this->getDriveFile($path2);
if ($testFile2) {
$this->service->files->trash($testFile2->getId());
\OCP\Util::writeLog('files_external', 'trash file '.$path2.
' for renaming '.$path1.' on Google Drive.', \OCP\Util::DEBUG);
}
}
}
$file = $this->getDriveFile($path1);
if ($file) {
$newFile = $this->getDriveFile($path2);