Add directDownload support of storage

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
pull/9178/head
Roeland Jago Douma 8 years ago
parent 164d998856
commit 6a385dd20b
No known key found for this signature in database
GPG Key ID: F941078878347C0C
  1. 27
      apps/dav/lib/Controller/DirectController.php
  2. 1
      apps/dav/lib/Direct/DirectHome.php

@ -87,23 +87,28 @@ class DirectController extends OCSController {
}
$file = array_shift($files);
$storage = $file->getStorage();
$directDownload = $storage->getDirectDownload($file->getInternalPath());
//TODO: try to get a url from the backend (like S3)
if (isset($directDownload['url'])) {
$url = $directDownload['url'];
} else {
// Fallback to our default implemenation
$direct = new Direct();
$direct->setUserId($this->userId);
$direct->setFileId($fileId);
$token = $this->random->generate(60, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS);
$direct->setToken($token);
$direct->setExpiration($this->timeFactory->getTime() + 60 * 60 * 8);
// Fallback to our default implemenation
$direct = new Direct();
$direct->setUserId($this->userId);
$direct->setFileId($fileId);
$this->mapper->insert($direct);
$token = $this->random->generate(60, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS);
$direct->setToken($token);
$direct->setExpiration($this->timeFactory->getTime() + 60*60*8);
$this->mapper->insert($direct);
$url = $this->urlGenerator->getAbsoluteURL('remote.php/direct/'.$token);
}
return new DataResponse([
'url' => $this->urlGenerator->getAbsoluteURL('remote.php/direct/'.$token)
'url' => $url,
]);
}
}

@ -26,7 +26,6 @@ namespace OCA\DAV\Direct;
use OCA\DAV\Db\DirectMapper;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\Files\File;
use OCP\Files\IRootFolder;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\MethodNotAllowed;

Loading…
Cancel
Save