Шифрование изображений при загрузке в корзину Amazon S3 ПРИ ПЕРЕДАЧЕ

#react-native #amazon-s3 #encryption #aws-amplify

#react-native #amazon-s3 #шифрование #aws-amplify

Вопрос:

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / КОД:

Я использую react native with Amplify library для загрузки изображений из моего мобильного приложения в корзину Amazon AWS S3. Я использую следующий код строки:

 Storage.put(newFile.name, newFile, {
      level: 'private'});
 

Я могу успешно загрузить файл.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я включил шифрование по умолчанию для объектов S3 в моем корзине. То есть всякий раз, когда объект попадает в корзину, он шифруется с использованием шифрования по умолчанию перед сохранением на диске S3.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html

Операция загрузки (во время вызова Storage.put()) выполняется в 2 этапа:

Шаг 1. Файл, который я отправляю из своего мобильного приложения react native, отправляется в корзину Amazon S3 в незашифрованном виде.

Шаг 2. Этот незашифрованный файл, когда он попадает в корзину S3, затем шифруется и сохраняется на диске в S3.

МОЯ ПРОБЛЕМА:

Я хочу включить шифрование при передаче. То есть я хочу шифрование на самом шаге 1.

В принципе, мне не нужно шифрование на стороне сервера. Я хочу шифрование на стороне клиента.

ЧТО Я ИССЛЕДОВАЛ:

Даже в документе amplify показан пример, описанный на шаге 1 и шаге 2. Это не то, чего я хочу. https://docs.amplify.aws/lib/storage/upload/q/platform/js/#encrypted-uploads

Пример, приведенный в приведенном выше документе amplify, будет делать то же самое — файл будет отправлен в незашифрованном виде на S3, а затем, когда он попадет в корзину, он будет зашифрован и сохранен. Это не то, чего я хочу.

Комментарии:

1. Дайте мне знать, если я что-то неправильно понял.

2. Я думаю, что он обычно шифруется при отправке, потому что Storage.put использует post-запрос https (с graphql) для загрузки файла.

3. Согласен с @Engam выше. Что заставляет вас думать, что оно не зашифровано при отправке?

4. Если вы спросите encrypt in transit , обычно ответом является — используйте https. При использовании https трафик шифруется.