diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2016-11-30 08:38:13 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2016-11-30 09:43:36 +0100 |
commit | 5c602f32177e553fdb86c2f1ef5a6a85beb98913 (patch) | |
tree | 82732dfefa4865da049c6caf17016c99531c7135 /core/Controller/AvatarController.php | |
parent | 41dcceeb354c2d375ad279792dfadafe24858d75 (diff) | |
download | nextcloud-server-5c602f32177e553fdb86c2f1ef5a6a85beb98913.tar.gz nextcloud-server-5c602f32177e553fdb86c2f1ef5a6a85beb98913.zip |
Cache all avatar responses
* Cache for 30 minutes
* Also cache when avatar can't be found
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'core/Controller/AvatarController.php')
-rw-r--r-- | core/Controller/AvatarController.php | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php index 5e3d563cf2c..5a3d6309149 100644 --- a/core/Controller/AvatarController.php +++ b/core/Controller/AvatarController.php @@ -133,16 +133,6 @@ class AvatarController extends Controller { $resp = new FileDisplayResponse($avatar, Http::STATUS_OK, ['Content-Type' => $avatar->getMimeType()]); - - // Let cache this! - $resp->addHeader('Pragma', 'public'); - // Cache for 15 minutes - $resp->cacheFor(900); - - $expires = new \DateTime(); - $expires->setTimestamp($this->timeFactory->getTime()); - $expires->add(new \DateInterval('PT15M')); - $resp->addHeader('Expires', $expires->format(\DateTime::RFC2822)); } catch (NotFoundException $e) { $user = $this->userManager->get($userId); $resp = new JSONResponse([ @@ -150,20 +140,24 @@ class AvatarController extends Controller { 'displayname' => $user->getDisplayName(), ], ]); - // Don't cache this - $resp->cacheFor(0); - $resp->setLastModified(new \DateTime('now', new \DateTimeZone('GMT'))); } catch (\Exception $e) { $resp = new JSONResponse([ 'data' => [ 'displayname' => '', ], ]); - // Don't cache this - $resp->cacheFor(0); - $resp->setLastModified(new \DateTime('now', new \DateTimeZone('GMT'))); } + // Let cache this! + $resp->addHeader('Pragma', 'public'); + // Cache for 30 minutes + $resp->cacheFor(1800); + + $expires = new \DateTime(); + $expires->setTimestamp($this->timeFactory->getTime()); + $expires->add(new \DateInterval('PT30M')); + $resp->addHeader('Expires', $expires->format(\DateTime::RFC1123)); + return $resp; } |