Add support for filesystem caching, closes #993
This commit is contained in:
parent
ab2973c4d1
commit
838b9a9093
4 changed files with 5 additions and 11 deletions
|
@ -22,6 +22,7 @@ class AppSettingsCommand extends Command
|
||||||
const ALLOWED_CACHE_DRIVERS = [
|
const ALLOWED_CACHE_DRIVERS = [
|
||||||
'redis' => 'Redis (recommended)',
|
'redis' => 'Redis (recommended)',
|
||||||
'memcached' => 'Memcached',
|
'memcached' => 'Memcached',
|
||||||
|
'file' => 'Filesystem',
|
||||||
];
|
];
|
||||||
|
|
||||||
const ALLOWED_SESSION_DRIVERS = [
|
const ALLOWED_SESSION_DRIVERS = [
|
||||||
|
|
|
@ -366,7 +366,7 @@ class NodesController extends Controller
|
||||||
public function setToken(Node $node)
|
public function setToken(Node $node)
|
||||||
{
|
{
|
||||||
$token = bin2hex(random_bytes(16));
|
$token = bin2hex(random_bytes(16));
|
||||||
$this->cache->tags(['Node:Configuration'])->put($token, $node->id, 5);
|
$this->cache->put('Node:Configuration:' . $token, $node->id, 5);
|
||||||
|
|
||||||
return response()->json(['token' => $token]);
|
return response()->json(['token' => $token]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* Pterodactyl - Panel
|
|
||||||
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
|
|
||||||
*
|
|
||||||
* This software is licensed under the terms of the MIT license.
|
|
||||||
* https://opensource.org/licenses/MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Pterodactyl\Http\Controllers\Daemon;
|
namespace Pterodactyl\Http\Controllers\Daemon;
|
||||||
|
|
||||||
|
@ -25,7 +18,7 @@ class ActionController extends Controller
|
||||||
*/
|
*/
|
||||||
public function authenticateDownload(Request $request)
|
public function authenticateDownload(Request $request)
|
||||||
{
|
{
|
||||||
$download = Cache::tags(['Server:Downloads'])->pull($request->input('token'));
|
$download = Cache::pull('Server:Downloads:' . $request->input('token'));
|
||||||
|
|
||||||
if (is_null($download)) {
|
if (is_null($download)) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
@ -78,7 +71,7 @@ class ActionController extends Controller
|
||||||
*/
|
*/
|
||||||
public function configuration(Request $request, $token)
|
public function configuration(Request $request, $token)
|
||||||
{
|
{
|
||||||
$nodeId = Cache::tags(['Node:Configuration'])->pull($token);
|
$nodeId = Cache::pull('Node:Configuration:' . $token);
|
||||||
if (is_null($nodeId)) {
|
if (is_null($nodeId)) {
|
||||||
return response()->json(['error' => 'token_invalid'], 403);
|
return response()->json(['error' => 'token_invalid'], 403);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ class DownloadController extends Controller
|
||||||
|
|
||||||
$token = str_random(40);
|
$token = str_random(40);
|
||||||
$node = $server->getRelation('node');
|
$node = $server->getRelation('node');
|
||||||
$this->cache->tags(['Server:Downloads'])->put($token, ['server' => $server->uuid, 'path' => $file], 5);
|
$this->cache->put('Server:Downloads:' . $token, ['server' => $server->uuid, 'path' => $file], 5);
|
||||||
|
|
||||||
return redirect(sprintf('%s://%s:%s/v1/server/file/download/%s', $node->scheme, $node->fqdn, $node->daemonListen, $token));
|
return redirect(sprintf('%s://%s:%s/v1/server/file/download/%s', $node->scheme, $node->fqdn, $node->daemonListen, $token));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue