diff options
author | Robin Appelman <robin@icewind.nl> | 2019-10-29 13:49:41 +0100 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2019-11-13 12:39:32 +0100 |
commit | 1b6e647b633d62dff9f37c0449538d4c382210f8 (patch) | |
tree | 187bd9f192e9ead23027dfedb71295b308d3882a /lib | |
parent | 842da3f18364c50ca907f4ac984ded1ecafd35fe (diff) | |
download | nextcloud-server-1b6e647b633d62dff9f37c0449538d4c382210f8.tar.gz nextcloud-server-1b6e647b633d62dff9f37c0449538d4c382210f8.zip |
expose filecache extension data in FileInfo
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Files/FileInfo.php | 12 | ||||
-rw-r--r-- | lib/private/Files/Node/LazyRoot.php | 21 | ||||
-rw-r--r-- | lib/private/Files/Node/Node.php | 12 | ||||
-rw-r--r-- | lib/public/Files/FileInfo.php | 36 |
4 files changed, 81 insertions, 0 deletions
diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php index 19b95cd0355..bdc7a4b6341 100644 --- a/lib/private/Files/FileInfo.php +++ b/lib/private/Files/FileInfo.php @@ -406,4 +406,16 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { public function getExtension(): string { return pathinfo($this->getName(), PATHINFO_EXTENSION); } + + public function getMetadataEtag(): ?string { + return $this->data['metadata_etag']; + } + + public function getCreationTime(): int { + return $this->data['creation_time']; + } + + public function getUploadTime(): int { + return $this->data['upload_time']; + } } diff --git a/lib/private/Files/Node/LazyRoot.php b/lib/private/Files/Node/LazyRoot.php index 01b4ca52765..3e54d1254ad 100644 --- a/lib/private/Files/Node/LazyRoot.php +++ b/lib/private/Files/Node/LazyRoot.php @@ -480,4 +480,25 @@ class LazyRoot implements IRootFolder { public function getRecent($limit, $offset = 0) { return $this->__call(__FUNCTION__, func_get_args()); } + + /** + * @inheritDoc + */ + public function getMetadataEtag(): ?string { + return $this->__call(__FUNCTION__, func_get_args()); + } + + /** + * @inheritDoc + */ + public function getCreationTime(): int { + return $this->__call(__FUNCTION__, func_get_args()); + } + + /** + * @inheritDoc + */ + public function getUploadTime(): int { + return $this->__call(__FUNCTION__, func_get_args()); + } } diff --git a/lib/private/Files/Node/Node.php b/lib/private/Files/Node/Node.php index c440dd4a8f1..dcf5efa62d3 100644 --- a/lib/private/Files/Node/Node.php +++ b/lib/private/Files/Node/Node.php @@ -444,4 +444,16 @@ class Node implements \OCP\Files\Node { } } + public function getMetadataEtag(): ?string { + return $this->getFileInfo()->getMetadataEtag(); + } + + public function getCreationTime(): int { + return $this->getFileInfo()->getCreationTime(); + } + + public function getUploadTime(): int { + return $this->getFileInfo()->getUploadTime(); + } + } diff --git a/lib/public/Files/FileInfo.php b/lib/public/Files/FileInfo.php index c256f0980f0..e1b57d4788c 100644 --- a/lib/public/Files/FileInfo.php +++ b/lib/public/Files/FileInfo.php @@ -268,4 +268,40 @@ interface FileInfo { * @since 15.0.0 */ public function getExtension(): string; + + /** + * Get the metadata etag for the file + * + * Unlike the regular etag, the metadata etag also gets updated on metadata only changes + * + * @return string | null + * @since 18.0.0 + */ + public function getMetadataEtag(): ?string; + + /** + * Get the creation date as unix timestamp + * + * If the creation time is not known, 0 will be returned + * + * creation time is not set automatically by the server and is generally only available + * for files uploaded by the sync clients + * + * @return int + * @since 18.0.0 + */ + public function getCreationTime(): int; + + /** + * Get the upload date as unix timestamp + * + * If the upload time is not known, 0 will be returned + * + * Upload time will be set automatically by the server for files uploaded over DAV + * files created by Nextcloud apps generally do not have an the upload time set + * + * @return int + * @since 18.0.0 + */ + public function getUploadTime(): int; } |