From 74cb7d56357873c457350a1e54d2fb2876350f53 Mon Sep 17 00:00:00 2001 From: cdujeu Date: Wed, 11 Mar 2015 19:44:09 +0100 Subject: [PATCH] Fix setMetadata() on metastore.s3 plugin, broken for non-ascii chars, the CopySource parameter must be urlencoded. --- core/src/plugins/metastore.s3/class.s3MetaStore.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/plugins/metastore.s3/class.s3MetaStore.php b/core/src/plugins/metastore.s3/class.s3MetaStore.php index 0b7fc9102f..9d9623a176 100755 --- a/core/src/plugins/metastore.s3/class.s3MetaStore.php +++ b/core/src/plugins/metastore.s3/class.s3MetaStore.php @@ -112,7 +112,7 @@ public function setMetadata($ajxpNode, $nameSpace, $metaData, $private = false, array( 'Bucket' => $this->bucketName, 'Key' => $pathName, - 'CopySource' => $this->bucketName."/".$pathName, + 'CopySource' => $this->bucketName."/".urlencode($pathName), 'MetadataDirective' => 'REPLACE', 'Metadata' => array($this->getMetaKey($nameSpace,$scope,$user) => base64_encode(serialize($metaData))) ) @@ -131,7 +131,7 @@ public function removeMetadata($ajxpNode, $nameSpace, $private = false, $scope=A array( 'Bucket' => $this->bucketName, 'Key' => $pathName, - 'CopySource' => $this->bucketName."/".$pathName, + 'CopySource' => $this->bucketName."/".urlencode($pathName), 'MetadataDirective' => 'REPLACE', 'Metadata' => array($this->getMetaKey($nameSpace,$scope,$user) => "") )