aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Controllers
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
commit5b2464a8113fa4a68c8749b3553a5924d2131d9f (patch)
treefeaaef135731687eb16cd40556842cc8606cdaab /Timeline/Controllers
parent24fe6340ea69321ecafb57c8c5d6cd4b72f229b4 (diff)
downloadtimeline-5b2464a8113fa4a68c8749b3553a5924d2131d9f.tar.gz
timeline-5b2464a8113fa4a68c8749b3553a5924d2131d9f.tar.bz2
timeline-5b2464a8113fa4a68c8749b3553a5924d2131d9f.zip
Add avatar 304.
Diffstat (limited to 'Timeline/Controllers')
-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)
{