0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-05-20 05:00:15 +00:00
nextcloud_server/lib/public/Files/ObjectStore/IObjectStoreMetaData.php
Robin Appelman 8aae332622
feat: store original storage id and path in object store metadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-03-31 15:10:58 +02:00

47 lines
1.3 KiB
PHP

<?php
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCP\Files\ObjectStore;
/**
* Interface IObjectStoreMetaData
*
* @psalm-type ObjectMetaData = array{mtime?: \DateTime, etag?: string, size?: int, mimetype?: string, filename?: string, original-path?: string, original-storage?: string}
*
* @since 32.0.0
*/
interface IObjectStoreMetaData {
/**
* Get metadata for an object.
*
* @param string $urn
* @return ObjectMetaData
*
* @since 32.0.0
*/
public function getObjectMetaData(string $urn): array;
/**
* List all objects in the object store.
*
* If the object store implementation can do it efficiently, the metadata for each object is also included.
*
* @param string $prefix
* @return \Iterator<array{urn: string, metadata: ?ObjectMetaData}>
*
* @since 32.0.0
*/
public function listObjects(string $prefix = ''): \Iterator;
/**
* @param string $urn the unified resource name used to identify the object
* @param resource $stream stream with the data to write
* @param ObjectMetaData $metaData the metadata to set for the object
* @throws \Exception when something goes wrong, message will be logged
* @since 32.0.0
*/
public function writeObjectWithMetaData(string $urn, $stream, array $metaData): void;
}