В нашей повседневной жизни как разработчика мы сталкиваемся со многими проблемами. Наша жизнь состоит из решения этих маленьких проблем.

Вы бы использовали Amazon S3 для хранения файлов (изображений, видео, документов и т. д.) для своего приложения в какой-то момент своей жизни.

Сегодня в этой статье мы собираемся обсудить загрузку файла с Amazon S3.

Что такое Amazon S3:

Согласно документации Amazon S3,

Amazon Simple Storage Service (Amazon S3) — это сервис хранения объектов, предлагающий лучшую в отрасли масштабируемость, доступность данных, безопасность и производительность. Клиенты всех размеров и отраслей могут хранить и защищать любые объемы данных практически для любого варианта использования, например озер данных, облачных приложений и мобильных приложений. Благодаря экономичным классам хранения и простым в использовании функциям управления вы можете оптимизировать затраты, упорядочивать данные и настраивать точно настроенные элементы управления доступом в соответствии с конкретными бизнес-требованиями, организационными требованиями и требованиями соответствия.

Это отличный и простой способ хранения больших файлов для вашего приложения.

Что такое предварительно подписанный URL-адрес Amazon S3?

Когда мы хотим получить доступ к файлу в Amazon S3, нам нужно войти в AWS, и мы сможем просмотреть файл.

Что, если мы хотим, чтобы к файлу мог получить доступ любой пользователь в Интернете? Мы можем сделать это, создав предварительно подписанный URL.

Предварительно подписанный URL-адрес файла Amazon S3 — это не что иное, как URL-адрес, который содержит дополнительные параметры, чтобы любой пользователь в Интернете мог легко загрузить этот файл без проблем.

Вот пример предварительно подписанного URL:

https://presignedurldemo.s3.eu-west-2.amazonaws.com/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJJWZ7B6WCRGMKFGQ%2F20180210%2Feu-west-2%2Fs3 %2Faws4_request&X-Amz-Date=20180210T171315Z&X-Amz-Expires=1800&X-Amz-Signature=12b74b0788aa036bc7c3d03b3f20c61f1f91cc9ad8873e3314255dc479a253 51&X-Amz-SignedHeaders=хост

Как вы можете видеть в приведенном выше примере, к URL-адресу прикреплено несколько дополнительных параметров, таких как X-Amz-Algorithm, X-Amz-Credential, X-Amz-Date, X-Amz-Expires, X-Amz-Signature. , X-Amz-SignedHeaders, который помогает без проблем загрузить файл.

Как скачать этот файл?

Теперь у вас есть предварительно подписанный URL-адрес Amazon S3, и вы можете легко загрузить файл программно.

Используйте этот код для загрузки файла:

function downloadFile(presignedUrl, fileName) {
  const link = document.createElement("a");
  link.href = presignedUrl;
  link.download = fileName;
  link.target = "_blank";
  link.click();
}

Вот и все.

Что делать, если вы не хотите использовать предварительно подписанный URL-адрес?

Нет проблем, вы можете легко загрузить любой файл из Amazon S3 с помощью AWS SDK.

Ниже приведен пример:

import { GetObjectCommand, S3Client } from "@aws-sdk/client-s3";

const client = new S3Client({}) // Here credentials comes in picture

export const main = async () => {
  const command = new GetObjectCommand({
    Bucket: "bucket-1",
    Key: "hello-world.txt"
  });

  try {
    const response = await client.send(command);
    const str = await response.Body.transformToString();
    console.log(str);
  } catch (err) {
    console.error(err);
  }
};

Этот приведенный выше код извлекает файл из корзины Amazon S3.

Вот и все.

Если вам понравилась эта статья, подписывайтесь на меня здесь, на Medium, чтобы получать больше историй о технологиях.

Будьте на шаг впереди! Подпишитесь на мою рассылку и получайте эксклюзивный контент, ценную информацию и последние обновления прямо на ваш почтовый ящик. Я также веду обширные блоги на FrontendRoom.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .