Check if the part files has keys when the original file does not

This commit is contained in:
Joas Schilling 2015-06-08 15:36:54 +02:00
parent 1769de0a6d
commit e6681857d2
1 changed files with 11 additions and 1 deletions

View File

@ -72,7 +72,17 @@ class Storage implements IStorage {
public function getFileKey($path, $keyId, $encryptionModuleId) {
$realFile = $this->util->stripPartialFileExtension($path);
$keyDir = $this->getFileKeyDir($encryptionModuleId, $realFile);
return $this->getKey($keyDir . $keyId);
$key = $this->getKey($keyDir . $keyId);
if ($key === '' && $realFile !== $path) {
// Check if the part file has keys and use them, if no normal keys
// exist. This is required to fix copyBetweenStorage() when we
// rename a .part file over storage borders.
$keyDir = $this->getFileKeyDir($encryptionModuleId, $path);
$key = $this->getKey($keyDir . $keyId);
}
return $key;
}
/**