summaryrefslogtreecommitdiffstats
path: root/apps/dav/appinfo/v2/direct.php
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2018-05-01 14:54:44 +0200
committerGitHub <noreply@github.com>2018-05-01 14:54:44 +0200
commitf212c692ac5204fbea4639727db8e464152dba5d (patch)
treeb12f4670807486983f82e9527791b89c8ee78625 /apps/dav/appinfo/v2/direct.php
parent7f194be3ab4ad0ee8edf095bf6d79a17f116f782 (diff)
parent1c75ddac45845d9e91997e6253e36b9ae2556e91 (diff)
downloadnextcloud-server-f212c692ac5204fbea4639727db8e464152dba5d.tar.gz
nextcloud-server-f212c692ac5204fbea4639727db8e464152dba5d.zip
Merge pull request #9178 from nextcloud/feature/9142/directdownload
Add directdownload endpoint
Diffstat (limited to 'apps/dav/appinfo/v2/direct.php')
-rw-r--r--apps/dav/appinfo/v2/direct.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/apps/dav/appinfo/v2/direct.php b/apps/dav/appinfo/v2/direct.php
new file mode 100644
index 00000000000..3762a628303
--- /dev/null
+++ b/apps/dav/appinfo/v2/direct.php
@@ -0,0 +1,47 @@
+<?php
+declare(strict_types=1);
+/**
+ * @copyright 2018, Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// no php execution timeout for webdav
+if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) {
+ @set_time_limit(0);
+}
+ignore_user_abort(true);
+
+// Turn off output buffering to prevent memory problems
+\OC_Util::obEnd();
+
+$requestUri = \OC::$server->getRequest()->getRequestUri();
+
+$serverFactory = new \OCA\DAV\Direct\ServerFactory(\OC::$server->getConfig());
+$server = $serverFactory->createServer(
+ $baseuri,
+ $requestUri,
+ \OC::$server->getRootFolder(),
+ \OC::$server->query(\OCA\DAV\Db\DirectMapper::class),
+ \OC::$server->query(\OCP\AppFramework\Utility\ITimeFactory::class),
+ \OC::$server->getBruteForceThrottler(),
+ \OC::$server->getRequest()
+);
+
+$server->exec();