Рубрики
Uncategorized

Как загрузить PDF, полученный от API в AWS S3?

Фрагмент кода для шифрования и загрузки PDF -файла в ведро AWS S3, полученное в виде потока от внешнего API. Tagged с DevOps, AWS, S3, фрагмент.

Проблема

Как загрузить файл 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»