summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2019-10-29 13:49:41 +0100
committerRobin Appelman <robin@icewind.nl>2019-11-13 12:39:32 +0100
commit1b6e647b633d62dff9f37c0449538d4c382210f8 (patch)
tree187bd9f192e9ead23027dfedb71295b308d3882a /lib
parent842da3f18364c50ca907f4ac984ded1ecafd35fe (diff)
downloadnextcloud-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.php12
-rw-r--r--lib/private/Files/Node/LazyRoot.php21
-rw-r--r--lib/private/Files/Node/Node.php12
-rw-r--r--lib/public/Files/FileInfo.php36
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;
}