[Pkg-owncloud-commits] [owncloud] 04/205: Properly set mtime on S3 for touch operation

David Prévot taffit at moszumanska.debian.org
Thu Jul 2 17:36:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch stable8
in repository owncloud.

commit f98030020f5b368d24a8c25c24ef59dd4539137b
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Mon Jun 15 17:35:09 2015 +0200

    Properly set mtime on S3 for touch operation
    
    The code was missing the "MetadataDirective".
    Once added, some other parts of the code failed because the format of mtime was wrong.
    So this PR uses the RFC format that the S3 library already uses.
    
    Additionally, the code path where mtime is null was missing. Now defaulting to
    the current time.
---
 apps/files_external/lib/amazons3.php | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php
index acf976e..01b4671 100644
--- a/apps/files_external/lib/amazons3.php
+++ b/apps/files_external/lib/amazons3.php
@@ -439,9 +439,12 @@ class AmazonS3 extends \OC\Files\Storage\Common {
 		$path = $this->normalizePath($path);
 
 		$metadata = array();
-		if (!is_null($mtime)) {
-			$metadata = array('lastmodified' => $mtime);
+		if (is_null($mtime)) {
+			$mtime = time();
 		}
+		$metadata = [
+			'lastmodified' => gmdate(\Aws\Common\Enum\DateFormat::RFC1123, $mtime)
+		];
 
 		$fileType = $this->filetype($path);
 		try {
@@ -449,22 +452,24 @@ class AmazonS3 extends \OC\Files\Storage\Common {
 				if ($fileType === 'dir' && ! $this->isRoot($path)) {
 					$path .= '/';
 				}
-				$this->getConnection()->copyObject(array(
+				$this->getConnection()->copyObject([
 					'Bucket' => $this->bucket,
 					'Key' => $this->cleanKey($path),
 					'Metadata' => $metadata,
-					'CopySource' => $this->bucket . '/' . $path
-				));
+					'CopySource' => $this->bucket . '/' . $path,
+					'MetadataDirective' => 'REPLACE',
+				]);
 				$this->testTimeout();
 			} else {
 				$mimeType = \OC_Helper::getMimetypeDetector()->detectPath($path);
-				$this->getConnection()->putObject(array(
+				$this->getConnection()->putObject([
 					'Bucket' => $this->bucket,
 					'Key' => $this->cleanKey($path),
 					'Metadata' => $metadata,
 					'Body' => '',
-					'ContentType' => $mimeType
-				));
+					'ContentType' => $mimeType,
+					'MetadataDirective' => 'REPLACE',
+				]);
 				$this->testTimeout();
 			}
 		} catch (S3Exception $e) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list