Merge pull request #15215 from owncloud/ext-gdrivelistfilequoting
Properly quote file names in listFiles query for GDrive
This commit is contained in:
commit
b216b3fad0
|
@ -113,7 +113,7 @@ class Google extends \OC\Files\Storage\Common {
|
|||
if (isset($this->driveFiles[$path])) {
|
||||
$parentId = $this->driveFiles[$path]->getId();
|
||||
} else {
|
||||
$q = "title='".$name."' and '".$parentId."' in parents and trashed = false";
|
||||
$q = "title='" . rawurlencode($name) . "' and '" . rawurlencode($parentId) . "' in parents and trashed = false";
|
||||
$result = $this->service->files->listFiles(array('q' => $q))->getItems();
|
||||
if (!empty($result)) {
|
||||
// Google Drive allows files with the same name, ownCloud doesn't
|
||||
|
@ -257,7 +257,7 @@ class Google extends \OC\Files\Storage\Common {
|
|||
if ($pageToken !== true) {
|
||||
$params['pageToken'] = $pageToken;
|
||||
}
|
||||
$params['q'] = "'".$folder->getId()."' in parents and trashed = false";
|
||||
$params['q'] = "'" . rawurlencode($folder->getId()) . "' in parents and trashed = false";
|
||||
$children = $this->service->files->listFiles($params);
|
||||
foreach ($children->getItems() as $child) {
|
||||
$name = $child->getTitle();
|
||||
|
|
|
@ -104,13 +104,14 @@ abstract class Storage extends \Test\TestCase {
|
|||
}
|
||||
|
||||
public function directoryProvider() {
|
||||
return array(
|
||||
array('folder'),
|
||||
array(' folder'),
|
||||
array('folder '),
|
||||
array('folder with space'),
|
||||
array('spéciäl földer'),
|
||||
);
|
||||
return [
|
||||
['folder'],
|
||||
[' folder'],
|
||||
['folder '],
|
||||
['folder with space'],
|
||||
['spéciäl földer'],
|
||||
['test single\'quote'],
|
||||
];
|
||||
}
|
||||
|
||||
function loremFileProvider() {
|
||||
|
@ -163,15 +164,16 @@ abstract class Storage extends \Test\TestCase {
|
|||
|
||||
|
||||
public function copyAndMoveProvider() {
|
||||
return array(
|
||||
array('/source.txt', '/target.txt'),
|
||||
array('/source.txt', '/target with space.txt'),
|
||||
array('/source with space.txt', '/target.txt'),
|
||||
array('/source with space.txt', '/target with space.txt'),
|
||||
array('/source.txt', '/tärgét.txt'),
|
||||
array('/sòurcē.txt', '/target.txt'),
|
||||
array('/sòurcē.txt', '/tärgét.txt'),
|
||||
);
|
||||
return [
|
||||
['/source.txt', '/target.txt'],
|
||||
['/source.txt', '/target with space.txt'],
|
||||
['/source with space.txt', '/target.txt'],
|
||||
['/source with space.txt', '/target with space.txt'],
|
||||
['/source.txt', '/tärgét.txt'],
|
||||
['/sòurcē.txt', '/target.txt'],
|
||||
['/sòurcē.txt', '/tärgét.txt'],
|
||||
['/single \' quote.txt', '/tar\'get.txt'],
|
||||
];
|
||||
}
|
||||
|
||||
public function initSourceAndTarget ($source, $target = null) {
|
||||
|
|
Loading…
Reference in New Issue