Skip to content

Commit 39994d1

Browse files
author
Thomas Moore
authored
Merge pull request #81 from aws-samples/media-catalog
Updates to allow for SSO auth via IAM Identity Center. Updates to mak…
2 parents 46c7dcd + 932f7a6 commit 39994d1

File tree

5 files changed

+33
-28
lines changed

5 files changed

+33
-28
lines changed

SampleApplications/2022/MediaCatalog/MediaLibrary6.0/MediaLibrary/Controllers/FileManagementController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,14 @@ public class FileManagementController : Controller
1414
private readonly IFileMetadataService _metadataService;
1515
private readonly IImageMetadataService _imageService;
1616
private readonly IImageLookupService _imageLookupService;
17-
private readonly IModerationService _moderationService;
1817
private readonly ILogger _logger;
19-
public FileManagementController (IStorageService storage, IOptions<AwsSettings> options, IFileMetadataService metadataService, IImageMetadataService imageService, ILogger<FileManagementController> logger, IImageLookupService imageLookupService, IModerationService moderationService)
18+
public FileManagementController (IStorageService storage, IOptions<AwsSettings> options, IFileMetadataService metadataService, IImageMetadataService imageService, ILogger<FileManagementController> logger, IImageLookupService imageLookupService)
2019
{
2120
_storage = storage;
2221
_configuration = options.Value;
2322
_metadataService = metadataService;
2423
_imageService = imageService;
2524
_imageLookupService = imageLookupService;
26-
_moderationService = moderationService;
2725
_logger = logger;
2826
}
2927
// We need to store the files in S3 and then push the metadata into a Dynamo DB Table.
@@ -63,6 +61,8 @@ public async Task<IActionResult> Upload(IFormFile file)
6361
string s3KeyName = _storage.SaveFile(file);
6462
_logger.Log(LogLevel.Information, "Saved file {0} to S3 bucket as {1}", file.FileName, s3KeyName );
6563

64+
IModerationService _moderationService = new RekognitionModerationService (_configuration, _logger);
65+
6666
var moderationResults = await _moderationService.IsContentAllowed(s3KeyName);
6767
if (moderationResults.ImageAllowed)
6868
{

SampleApplications/2022/MediaCatalog/MediaLibrary6.0/MediaLibrary/Controllers/RekognitionController.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ namespace MediaLibrary.Controllers
99
{
1010
public class RekognitionController : Controller
1111
{
12-
12+
1313
private readonly AwsSettings _configuration;
1414
private readonly IFileMetadataService _metadataService;
1515
private readonly IImageMetadataService _imageMetadataService;
1616
private readonly IImageLookupService _imageLookupService;
1717
private readonly ILogger _logger;
1818

19-
public RekognitionController (IOptions<AwsSettings> options, IFileMetadataService metadataService, IImageMetadataService imageMetadataService, ILogger<RekognitionController> logger, IImageLookupService imageLookupService)
19+
public RekognitionController(IOptions<AwsSettings> options, IFileMetadataService metadataService, IImageMetadataService imageMetadataService, ILogger<RekognitionController> logger, IImageLookupService imageLookupService)
2020
{
2121
_configuration = options.Value;
2222
_metadataService = metadataService;
@@ -58,7 +58,7 @@ public async Task<IActionResult> ViewItem(string item)
5858
}
5959
}
6060

61-
public async Task<IActionResult> Process (string item)
61+
public async Task<IActionResult> Process(string item)
6262
{
6363
_logger.Log(LogLevel.Information, "RekognitionController::Process", null);
6464
AWSXRayRecorder.Instance.BeginSubsegment("RekognitionController::Process - Getting File Metadata");
@@ -93,7 +93,7 @@ public async Task<IActionResult> Process (string item)
9393
};
9494

9595
var labels = await client.DetectLabelsAsync(detectLabelsRequest);
96-
96+
9797
// Store the new data in a new dynamo DB Table
9898
foreach (var label in labels.Labels)
9999
{
@@ -111,7 +111,7 @@ public async Task<IActionResult> Process (string item)
111111
AWSXRayRecorder.Instance.EndSubsegment();
112112
}
113113
// Sore individual indexes
114-
return View (viewModel);
114+
return View(viewModel);
115115
}
116116
[HttpPost]
117117
public async Task<IActionResult> Process(ImageProcessingModel model, IFormCollection collection)
@@ -162,7 +162,7 @@ public async Task<IActionResult> Process(ImageProcessingModel model, IFormCollec
162162
return RedirectToAction("Index", "FileManagement");
163163
}
164164

165-
public async Task<IActionResult> Search (string filter)
165+
public async Task<IActionResult> Search(string filter)
166166
{
167167
var fullLabelData = await _imageLookupService.GetLabelData();
168168
ImageLookupDataModel imageLookupList;
@@ -189,7 +189,7 @@ where x.Label.ToLower() == filter.ToLower()
189189
{
190190
viewModel.CurrentValue = "---Choose Label---";
191191
}
192-
192+
193193
viewModel.Labels = new List<string>();
194194

195195
foreach (var item in fullLabelData)
@@ -200,9 +200,9 @@ where x.Label.ToLower() == filter.ToLower()
200200
}
201201
}
202202

203-
203+
204204

205205
return View(viewModel);
206206
}
207207
}
208-
}
208+
}

SampleApplications/2022/MediaCatalog/MediaLibrary6.0/MediaLibrary/MediaLibrary.csproj

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@
1010

1111
<ItemGroup>
1212
<PackageReference Include="AWS.Logger.AspNetCore" Version="3.3.0" />
13-
<PackageReference Include="AWSSDK.Core" Version="3.7.12.6" />
14-
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.3.54" />
15-
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.7.2" />
16-
<PackageReference Include="AWSSDK.Rekognition" Version="3.7.8.29" />
17-
<PackageReference Include="AWSSDK.S3" Version="3.7.9.22" />
18-
<PackageReference Include="AWSSDK.SimpleSystemsManagement" Version="3.7.17.24" />
19-
<PackageReference Include="AWSXRayRecorder" Version="2.10.1" />
20-
<PackageReference Include="AWSXRayRecorder.Core" Version="2.10.1" />
21-
<PackageReference Include="AWSXRayRecorder.Handlers.AspNetCore" Version="2.7.3" />
22-
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="6.0.0" />
23-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.16.1" />
13+
<PackageReference Include="AWSSDK.Core" Version="3.7.106.21" />
14+
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.102.28" />
15+
<PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.7.5" />
16+
<PackageReference Include="AWSSDK.Rekognition" Version="3.7.103.5" />
17+
<PackageReference Include="AWSSDK.S3" Version="3.7.103.51" />
18+
<PackageReference Include="AWSSDK.SimpleSystemsManagement" Version="3.7.104.17" />
19+
<PackageReference Include="AWSSDK.SSO" Version="3.7.100.114" />
20+
<PackageReference Include="AWSSDK.SSOOIDC" Version="3.7.100.114" />
21+
<PackageReference Include="AWSXRayRecorder" Version="2.14.0" />
22+
<PackageReference Include="AWSXRayRecorder.Core" Version="2.14.0" />
23+
<PackageReference Include="AWSXRayRecorder.Handlers.AspNetCore" Version="2.11.0" />
24+
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
25+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.18.1" />
2426
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.7" />
2527
</ItemGroup>
2628

SampleApplications/2022/MediaCatalog/MediaLibrary6.0/MediaLibrary/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
builder.Services.AddScoped<IFileMetadataService, DynamoFileMetadataService>();
1616
builder.Services.AddScoped<IImageMetadataService, DynamoImageMetadataService>();
1717
builder.Services.AddScoped<IImageLookupService, DynamoImageLookupService>();
18-
builder.Services.AddScoped<IModerationService, RekognitionModerationService>();
18+
1919

2020

2121
builder.Services.Configure<AwsSettings>(builder.Configuration.GetSection("AWSConfig"));

SampleApplications/2022/MediaCatalog/MediaLibrary6.0/MediaLibrary/Services/RekognitionModerationService.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,23 @@ namespace MediaLibrary.Services
66
public class RekognitionModerationService : IModerationService
77
{
88
private readonly AwsSettings _configuration;
9-
private readonly ILogger<RekognitionModerationService> _logger;
9+
private readonly ILogger _logger;
1010

11-
public RekognitionModerationService (IOptions<AwsSettings> options, ILogger<RekognitionModerationService> logger)
11+
12+
13+
public RekognitionModerationService(AwsSettings options, ILogger logger)
1214
{
13-
_configuration = options.Value;
15+
_configuration = options;
1416
_logger = logger;
1517
}
18+
1619
public async Task<ModerationResultsViewModel> IsContentAllowed(string objectLocation)
1720
{
1821
Amazon.Rekognition.AmazonRekognitionClient client = new Amazon.Rekognition.AmazonRekognitionClient();
1922

2023
var results = await client.DetectModerationLabelsAsync(new Amazon.Rekognition.Model.DetectModerationLabelsRequest()
2124
{
22-
MinConfidence = 75F,
25+
MinConfidence = 50F,
2326
Image = new Amazon.Rekognition.Model.Image()
2427
{
2528
S3Object = new Amazon.Rekognition.Model.S3Object()

0 commit comments

Comments
 (0)