in Application/API/ImageRecognition.API/Controllers/PhotoController.cs [43:75]
public async Task<JsonResult> GetPhotosByAlbum(string albumId)
{
var userId = Utilities.GetUsername(HttpContext.User);
var photos = new List<Photo>();
var photoQuery = _ddbContext.QueryAsync<Photo>(albumId,
new DynamoDBOperationConfig {IndexName = "albumID-uploadTime-index"});
foreach (var photo in await photoQuery.GetRemainingAsync().ConfigureAwait(false))
{
if (photo.Owner != userId) continue;
photo.Thumbnail ??= new PhotoImage();
photo.FullSize ??= new PhotoImage();
photo.Thumbnail.Url = _s3Client.GetPreSignedURL(new GetPreSignedUrlRequest
{
BucketName = _appOptions.PhotoStorageBucket,
Key = $"private/resized/{userId}/{photo.PhotoId}",
Expires = DateTime.UtcNow.AddHours(1)
});
photo.FullSize.Url = _s3Client.GetPreSignedURL(new GetPreSignedUrlRequest
{
BucketName = _appOptions.PhotoStorageBucket,
Key = $"private/uploads/{userId}/{photo.PhotoId}",
Expires = DateTime.UtcNow.AddHours(1)
});
photos.Add(photo);
}
return new JsonResult(photos);
}