diff options
Diffstat (limited to 'lib/private/Files/ObjectStore/IObjectStoreMetaData.php')
-rw-r--r-- | lib/private/Files/ObjectStore/IObjectStoreMetaData.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/private/Files/ObjectStore/IObjectStoreMetaData.php b/lib/private/Files/ObjectStore/IObjectStoreMetaData.php new file mode 100644 index 00000000000..dc6b55076ac --- /dev/null +++ b/lib/private/Files/ObjectStore/IObjectStoreMetaData.php @@ -0,0 +1,36 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OC\Files\ObjectStore; + +/** + * Interface IObjectStoreMetaData + * + * @psalm-type ObjectMetaData = array{mtime?: \DateTime, etag?: string, size?: int, mimetype?: string, filename?: string} + */ +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; +} |