diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Files/ObjectStore/ObjectStoreStorage.php | 9 | ||||
-rw-r--r-- | lib/public/Files/ObjectStore/IObjectStoreMultiPartUpload.php | 10 | ||||
-rw-r--r-- | lib/public/Files/Storage/IChunkedFileWrite.php | 5 |
3 files changed, 19 insertions, 5 deletions
diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index 389f744eab4..3494a7db806 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -661,10 +661,6 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common implements IChunkedFil return $this->objectStore->initiateMultipartUpload($urn); } - /** - * - * @throws GenericFileException - */ public function putChunkedWritePart( string $targetPath, string $writeToken, @@ -675,6 +671,11 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common implements IChunkedFil if (!$this->objectStore instanceof IObjectStoreMultiPartUpload) { throw new GenericFileException('Object store does not support multipart upload'); } + + if (!is_numeric($chunkId)) { + throw new GenericFileException('Chunk ID must be numeric for S3 multipart upload'); + } + $cacheEntry = $this->getCache()->get($targetPath); $urn = $this->getURN($cacheEntry->getId()); diff --git a/lib/public/Files/ObjectStore/IObjectStoreMultiPartUpload.php b/lib/public/Files/ObjectStore/IObjectStoreMultiPartUpload.php index 7989e27dfc8..c3a04da2201 100644 --- a/lib/public/Files/ObjectStore/IObjectStoreMultiPartUpload.php +++ b/lib/public/Files/ObjectStore/IObjectStoreMultiPartUpload.php @@ -5,6 +5,7 @@ declare(strict_types=1); * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCP\Files\ObjectStore; use Aws\Result; @@ -35,6 +36,15 @@ interface IObjectStoreMultiPartUpload { /** * @since 26.0.0 + * @return array of the parts in ListParts response + * + * Sample data: + * [[ + * 'PartNumber' => 1, + * 'LastModified' => '2010-11-10T20:48:34.000Z', + * 'ETag' => '"7778aef83f66abc1fa1e8477f296d394"', + * 'Size' => 10485760, + * ]] */ public function getMultipartUploads(string $urn, string $uploadId): array; } diff --git a/lib/public/Files/Storage/IChunkedFileWrite.php b/lib/public/Files/Storage/IChunkedFileWrite.php index 1095ee7cbfc..fd205ea2764 100644 --- a/lib/public/Files/Storage/IChunkedFileWrite.php +++ b/lib/public/Files/Storage/IChunkedFileWrite.php @@ -1,10 +1,12 @@ <?php + +declare(strict_types=1); + /** * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -declare(strict_types=1); namespace OCP\Files\Storage; @@ -29,6 +31,7 @@ interface IChunkedFileWrite extends IStorage { * @param string $chunkId * @param resource $data * @param int|null $size + * @return array|null * @throws GenericFileException * @since 26.0.0 */ |