aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Controllers/UserAvatarController.cs
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-08-19 15:43:47 +0800
committer杨宇千 <crupest@outlook.com>2019-08-19 15:43:47 +0800
commitf72a8d7f3415b510231a6ec60e020b1dde358059 (patch)
treefeaaef135731687eb16cd40556842cc8606cdaab /Timeline/Controllers/UserAvatarController.cs
parent3371b473d0d055f46c9ea09fba7e0d56e7a386a5 (diff)
downloadtimeline-f72a8d7f3415b510231a6ec60e020b1dde358059.tar.gz
timeline-f72a8d7f3415b510231a6ec60e020b1dde358059.tar.bz2
timeline-f72a8d7f3415b510231a6ec60e020b1dde358059.zip
Add avatar 304.
Diffstat (limited to 'Timeline/Controllers/UserAvatarController.cs')
-rw-r--r--Timeline/Controllers/UserAvatarController.cs16
1 files changed, 14 insertions, 2 deletions
diff --git a/Timeline/Controllers/UserAvatarController.cs b/Timeline/Controllers/UserAvatarController.cs
index 710ca764..89d2650c 100644
--- a/Timeline/Controllers/UserAvatarController.cs
+++ b/Timeline/Controllers/UserAvatarController.cs
@@ -57,10 +57,22 @@ namespace Timeline.Controllers
[Authorize]
public async Task<IActionResult> Get(string username)
{
+ const string IfModifiedSinceHeaderKey = "If-Modified-Since";
try
{
- var avatar = await _service.GetAvatar(username);
- return File(avatar.Data, avatar.Type);
+ var avatarInfo = await _service.GetAvatar(username);
+ var avatar = avatarInfo.Avatar;
+ if (Request.Headers.TryGetValue(IfModifiedSinceHeaderKey, out var value))
+ {
+ var t = DateTime.Parse(value);
+ if (t > avatarInfo.LastModified)
+ {
+ Response.Headers.Add(IfModifiedSinceHeaderKey, avatarInfo.LastModified.ToString("r"));
+ return StatusCode(StatusCodes.Status304NotModified);
+ }
+ }
+
+ return File(avatar.Data, avatar.Type, new DateTimeOffset(avatarInfo.LastModified), null);
}
catch (UserNotExistException e)
{