Сохраните материалы портфолио в S3

AWSBeginner
Практиковаться сейчас

Введение

Создайте закрытый bucket, загрузите картинки и проекты, получите идентичную копию и очистите свои ресурсы.

Сначала выполните предыдущие работы портфолио. Среда предоставляет собственные ресурсы и необходимые возможности прежних этапов. Переносите знания, а не экземпляры, файлы или учётные данные.

Связь с сертификацией

Сертификация Задачи Практика
AWS Certified Cloud Practitioner (CLF-C02) Task 3.6 Использовать хранилище объектов S3 отдельно от вычислений EC2.

Обзор

Создайте закрытый bucket, загрузите картинки и проекты, получите идентичную копию и очистите свои ресурсы.

Создайте закрытое хранилище

На этом шаге вы создадите закрытый bucket S3 для материалов и примените защиту от публичного доступа.

EC2 выполняет сайт. Amazon S3 хранит файлы как объекты в bucket, именованном контейнере. Так материалы отделены от сервера. Это задание предоставляет новый сайт и локальные файлы; bucket создадите вы.

Перейдите в подготовленный проект:

cd /home/labex/project

Загрузите идентификаторы и покажите имя bucket:

source website.env
echo "$PORTFOLIO_BUCKET"

PORTFOLIO_BUCKET — уникальное имя упражнения; bucket ещё не существует. S3 требует уникальные имена, поэтому используйте указанное, а не обычное вроде portfolio.

Команды s3 удобны для файлов. mb создаёт bucket, а s3:// обозначает расположение S3:

aws s3 mb "s3://$PORTFOLIO_BUCKET"

Ожидайте подтверждение make_bucket. Подключение использует us-east-1, Region нового bucket. Найдите его имя в AWS View.

Новое хранилище закрыто по умолчанию. Block Public Access защищает от случайных публичных разрешений. Прочитайте готовый JSON: четыре настройки должны быть true:

cat private-access.json

Каждое true включает защиту. s3api предоставляет отдельные операции S3, в том числе настройки доступа. Как для launch.json, file:// читает локальный файл без отдельного ввода каждого значения:

aws s3api put-public-access-block \
  --bucket "$PORTFOLIO_BUCKET" \
  --public-access-block-configuration file://private-access.json

Успешное обновление возвращает приглашение без вывода. Прочитайте настройки из S3, чтобы проверить сохранение:

aws s3api get-public-access-block --bucket "$PORTFOLIO_BUCKET"

Проверьте четыре true и No objects в AWS View. Reference bucket содержит независимый keep.txt; не меняйте его. Хранилище готово к материалам.

Загрузите и получите материалы

На этом шаге вы сохраните три обложки и список проектов, получите AURA и сравните байты с оригиналом.

В portfolio-assets/ четыре файла. WebP — формат изображения; projects.json содержит названия, описания и ссылки на изображения. Сайт и материалы готовы, чтобы вы сосредоточились на хранении.

Файл Назначение
images/aura-brand.webp AURA
images/forma-chair.webp FORMA
images/echo-record.webp ECHO
projects.json Названия, описания и ссылки

Ключ — имя объекта внутри bucket. images/aura-brand.webp имеет префикс images/, а не настоящую папку S3. cp копирует файлы, а --recursive — весь каталог, сохраняя относительные пути как ключи:

aws s3 cp portfolio-assets/ "s3://$PORTFOLIO_BUCKET/" --recursive

Ожидайте четыре строки upload. Затем покажите объекты через s3 ls; --recursive включает ключи под images/:

aws s3 ls "s3://$PORTFOLIO_BUCKET/" --recursive

Четыре строки показывают время, размер и ключ. Проверьте три изображения и projects.json; порядок и точное время не важны. AWS View показывает те же имена.

Bucket хранит три обложки и projects.json; идентификаторы отличаются.

Измените направление копирования, чтобы получить AURA под другим локальным именем:

aws s3 cp "s3://$PORTFOLIO_BUCKET/images/aura-brand.webp" downloaded-aura.webp

cmp сравнивает байты. Сравните оригинал и полученный файл:

cmp portfolio-assets/images/aura-brand.webp downloaded-aura.webp

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

Закрытое хранилище готово. Сайт пока читает локальные файлы, поэтому загрузка в S3 не меняет страницу. Следующее задание начнётся заново с сохранёнными аналогичными материалами и научит разрешать их чтение приложению.

Резюме

Вы создали закрытое S3, применили публичную защиту, загрузили три обложки и список, затем получили одинаковую копию. Вы отличили хранимые объекты от приложения, которое будет их использовать.

Официальные источники: S3 objects, AWS CLI S3 file commands, Block Public Access.