Проблема
Как загрузить файл PDF, который был сгенерирован сторонним API в ковше AWS S3 и защищает его с помощью шифрования на стороне сервера?
Решение
Давайте предположим, что мы получили PDF в качестве потока от названия нашей конечной точки API.
Stream pdfStream = api.GetPdfAsStream();
Фрагмент
Давайте посмотрим на код, прежде чем говорить о том, что происходит.
var s3Client = new AmazonS3Client(RegionEndpoint.USEast1); var s3Request = new PutObjectRequest { BucketName = "Bucket Name", Key = Guid.NewGuid().ToString(), InputStream = pdfStream, ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS, ContentType = "application/pdf", Headers = { ContentDisposition = $"attachment; \"filename=\"File Name\"" }, }; var s3Response = await s3Client.PutObjectAsync(s3Request);
- Строка 1 : Настройка клиента S3 с помощью региона, к которому мы хотим подключиться
- Строка 2 : Создать новый
Putobjectrecest
Потому что мы хотим загрузить файл в S3. - Строка 4 : BucketName : Установите имя ведра, на которое необходимо загрузить PDF.
- Строка 5 : Ключ : Создайте уникальный ключ для определения объекта в S3.
- Строка 6 : InputStream : Установите inputStream в PDF -поток, который мы получили от API.
- Строка 7 : ServersideEncryptionmethod : Используйте службу управления ключами AWS, чтобы зашифровать PDF.
- Строка 8 : ContentType : Установите тип контента на Приложение/PDF так что браузер может отображать файл ASA PDF.
Строка 9 : Заголовки : Добавьте несколько общих заголовков
- Контент -распределение к вложение Чтобы указать, что файл должен быть загружен.
- имя файла На имя файла.
- Строка 12 : Начните асинхронное исполнение
Putobject
операция
Вывод
Используя этот фрагмент, мы можем загрузить PDF в ковш S3 и шифровать его, используя шифрование на стороне сервера.
Оригинал: «https://dev.to/ankursheel/how-do-you-upload-a-pdf-received-from-an-api-to-aws-s3-364p»