/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: MIT-0 * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Threading.Tasks; using Amazon; using Amazon.S3; using Amazon.S3.Model; using InventoryService.Interface; using Microsoft.EntityFrameworkCore.Metadata.Internal; using Microsoft.Extensions.Configuration; namespace InventoryService.Repository { public class S3UnicornRepository : IS3UnicornRepository { private readonly IConfiguration configuration; public S3UnicornRepository(IConfiguration configuration) { this.configuration = configuration; } /// public async Task UploadImageToS3(byte[] image, string imageName) { // upload to S3 var client = new AmazonS3Client(); var request = new PutObjectRequest { BucketName = this.configuration.GetSection("S3BucketName").Value, Key = "img/prod_imgs/" + imageName + ".jpeg", CannedACL = S3CannedACL.PublicRead, }; request.InputStream = new MemoryStream(image); var response = await client.PutObjectAsync(request); return (int)response.HttpStatusCode; } } }