in services/collage/csharp/Startup.cs [38:82]
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
logger.LogInformation("Service is starting...");
app.UseRouting();
var thumbBucket = GetEnvironmentVariable("BUCKET_THUMBNAILS");
var projectId = GetEnvironmentVariable("PROJECT_ID");
app.UseEndpoints(endpoints =>
{
endpoints.MapPost("/", async context =>
{
var pictureNames = await GetPictureNames(projectId);
if (pictureNames.Count == 0)
{
logger.LogInformation("Empty collection, no collage to make");
context.Response.StatusCode = 204;
return;
}
logger.LogInformation("Picture file names: " + string.Join(", ", pictureNames));
var inputStreams = new List<MemoryStream>();
var client = await StorageClient.CreateAsync();
foreach (var name in pictureNames)
{
var inputStream = new MemoryStream();
await client.DownloadObjectAsync(thumbBucket, name, inputStream);
logger.LogInformation($"Downloaded '{name}'...");
inputStreams.Add(inputStream);
}
logger.LogInformation("Downloaded all thumbnails");
await CreateCollage(inputStreams, thumbBucket, logger);
logger.LogInformation($"Uploaded 'collage.png' to bucket '{thumbBucket}'");
});
});
}