summaryrefslogtreecommitdiffstats
path: root/lib/connector/sabre/directory.php
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2012-07-20 23:52:47 +0200
committerBart Visscher <bartv@thisnet.nl>2012-07-21 00:13:30 +0200
commitcdd9ffc8a5dba2d4c3d83d77fc7806fd017a6b97 (patch)
tree2c3fcc226540001e0df178fdb7e3b0e029c814e5 /lib/connector/sabre/directory.php
parent53bdb049cb3d2b005e5f6d17117f878b74aa0194 (diff)
downloadnextcloud-server-cdd9ffc8a5dba2d4c3d83d77fc7806fd017a6b97.tar.gz
nextcloud-server-cdd9ffc8a5dba2d4c3d83d77fc7806fd017a6b97.zip
Add ETag support to the Sabre file connector.
This is based on the md5 of the file, can be changed later
Diffstat (limited to 'lib/connector/sabre/directory.php')
-rw-r--r--lib/connector/sabre/directory.php22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/connector/sabre/directory.php b/lib/connector/sabre/directory.php
index f3f6541a8d4..0842fc4fc65 100644
--- a/lib/connector/sabre/directory.php
+++ b/lib/connector/sabre/directory.php
@@ -26,17 +26,33 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa
/**
* Creates a new file in the directory
*
- * data is a readable stream resource
+ * Data will either be supplied as a stream resource, or in certain cases
+ * as a string. Keep in mind that you may have to support either.
+ *
+ * After succesful creation of the file, you may choose to return the ETag
+ * of the new file here.
+ *
+ * The returned ETag must be surrounded by double-quotes (The quotes should
+ * be part of the actual string).
+ *
+ * If you cannot accurately determine the ETag, you should not return it.
+ * If you don't store the file exactly as-is (you're transforming it
+ * somehow) you should also not return an ETag.
+ *
+ * This means that if a subsequent GET to this new file does not exactly
+ * return the same contents of what was submitted here, you are strongly
+ * recommended to omit the ETag.
*
* @param string $name Name of the file
- * @param resource $data Initial payload
- * @return void
+ * @param resource|string $data Initial payload
+ * @return null|string
*/
public function createFile($name, $data = null) {
$newPath = $this->path . '/' . $name;
OC_Filesystem::file_put_contents($newPath,$data);
+ return OC_Connector_Sabre_Node::getETagPropertyForFile($newPath);
}
/**