summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php28
1 files changed, 14 insertions, 14 deletions
diff --git a/vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php b/vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php
index e78a824..5b26dea 100644
--- a/vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php
+++ b/vendor/aws/aws-sdk-php/src/S3/MultipartCopy.php
@@ -70,6 +70,7 @@ class MultipartCopy extends AbstractUploadManager
} else {
$this->source = $this->getInputSource($source);
}
+
parent::__construct(
$client,
array_change_key_case($config) + ['source_metadata' => null]
@@ -134,18 +135,21 @@ class MultipartCopy extends AbstractUploadManager
// if the key contains a '?' character to specify where the query parameters start
if (is_array($this->source)) {
$key = str_replace('%2F', '/', rawurlencode($this->source['source_key']));
- $data['CopySource'] = '/' . $this->source['source_bucket'] . '/' . $key;
+ $bucket = $this->source['source_bucket'];
} else {
-
list($bucket, $key) = explode('/', ltrim($this->source, '/'), 2);
- $data['CopySource'] = '/' . $bucket . '/' . implode(
- '/',
- array_map(
- 'urlencode',
- explode('/', rawurldecode($key))
- )
- );
+ $key = implode(
+ '/',
+ array_map(
+ 'urlencode',
+ explode('/', rawurldecode($key))
+ )
+ );
}
+
+ $uri = ArnParser::isArn($bucket) ? '' : '/';
+ $uri .= $bucket . '/' . $key;
+ $data['CopySource'] = $uri;
$data['PartNumber'] = $partNumber;
if (!empty($this->sourceVersionId)) {
$data['CopySource'] .= "?versionId=" . $this->sourceVersionId;
@@ -230,11 +234,7 @@ class MultipartCopy extends AbstractUploadManager
*/
private function getInputSource($inputSource)
{
- if (ArnParser::isArn($inputSource)) {
- $sourceBuilder = '';
- } else {
- $sourceBuilder = "/";
- }
+ $sourceBuilder = ArnParser::isArn($inputSource) ? '' : '/';
$sourceBuilder .= ltrim(rawurldecode($inputSource), '/');
return $sourceBuilder;
}