Add directDownload support of storage

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2018-04-13 17:40:52 +02:00
parent 164d998856
commit 6a385dd20b
No known key found for this signature in database
GPG Key ID: F941078878347C0C
2 changed files with 16 additions and 12 deletions

View File

@ -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,
]);
}
}

View File

@ -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;