9 команд AWS S3 із прикладами керування сегментами та даними

Управління та контроль інформацією може бути непростим завданням. Ці команди AWS S3 стануть у нагоді для швидкого та ефективного адміністрування ваших сегментів і даних AWS S3.

AWS S3 – це сервіс об’єктного зберігання, що надається AWS. Це найпопулярніша служба зберігання від AWS, здатна зберігати практично необмежені обсяги даних. Вона відрізняється високою доступністю, надійністю та легкістю інтеграції з багатьма іншими сервісами AWS.

AWS S3 підходить для користувачів з різноманітними потребами, як-от зберігання мобільних та веб-додатків, обробка великих даних, зберігання даних для машинного навчання, хостинг статичних веб-сайтів тощо.

Якщо ви вже працювали з S3 у своїх проектах, то знаєте, що з огляду на її величезну місткість, управління сотнями сегментів та терабайтами даних у них може стати складним завданням. Ми підготували список команд AWS S3 з прикладами, які допоможуть вам ефективно керувати сегментами та даними AWS S3.

Налаштування AWS CLI

Після успішного завантаження та встановлення AWS CLI, необхідно налаштувати облікові дані AWS для доступу до вашого облікового запису та сервісів AWS. Давайте швидко розглянемо процес налаштування AWS CLI.

Першим кроком є створення користувача з програмним доступом до вашого облікового запису AWS. Важливо поставити відповідну позначку під час створення користувача для AWS CLI.

Надайте дозволи та створіть користувача. На останньому екрані, після успішного створення, скопіюйте ідентифікатор ключа доступу та секретний ключ доступу цього користувача. Ці облікові дані будуть використовуватися для входу через AWS CLI.

Далі, відкрийте обраний вами термінал та виконайте наступну команду:

aws configure

У відповідь на запити введіть ідентифікатор ключа доступу та секретний ключ доступу. Виберіть будь-який регіон AWS та бажаний формат виводу команд. Особисто я віддаю перевагу формату JSON. Ці значення завжди можна змінити пізніше.

Тепер ви можете запускати будь-які команди AWS CLI з консолі. Перейдемо до розгляду команд AWS S3.

Команда cp

Команда cp призначена для копіювання даних в та з сегментів S3. Її можна використовувати для переміщення файлів з локального комп’ютера в S3, з S3 на локальний комп’ютер, а також між двома сегментами S3. Існує багато додаткових параметрів, які можна налаштувати для команд.

Наприклад, параметр --dryrun дозволяє перевірити команду без її фактичного виконання, --storage-class визначає клас зберігання ваших даних в S3, а також є параметри для налаштування шифрування. Команда cp надає повний контроль над налаштуванням захисту даних у S3.

Використання

aws s3 cp <ДЖЕРЕЛО> <ПРИЗНАЧЕННЯ> [--опції]

Приклади

Копіювання даних з локального комп’ютера в S3

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

Копіювання даних з S3 на локальний комп’ютер

aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

Копіювання даних між сегментами S3

aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Копіювання даних з локального комп’ютера в S3 – IA

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

Копіювання всіх даних з локальної папки в S3

aws s3 cp ./local_folder s3://bucket_name --recursive

Команда ls

Команда ls використовується для перегляду списку сегментів або їх вмісту. Якщо вам потрібно перевірити інформацію про ваші сегменти або дані у них, команда ls буде корисною.

Використання:

aws s3 ls NONE або <BUCKET_NAME> [--опції]

Приклади

Виведення списку всіх сегментів у обліковому записі

aws s3 ls

Output:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

Ця команда виводить список усіх сегментів у вашому обліковому записі разом з датою їх створення.

Виведення списку всіх об’єктів верхнього рівня у сегменті

aws s3 ls BUCKET_NAME_1 або s3://BUCKET_NAME_1

Output:
                           PRE samplePrefix/
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html

Ця команда виводить список усіх об’єктів верхнього рівня у сегменті S3. Зауважте, що об’єкти з префіксом samplePrefix/ тут не відображаються, лише об’єкти верхнього рівня.

Виведення списку всіх об’єктів у сегменті

aws s3 ls BUCKET_NAME_1 або s3://BUCKET_NAME_1 --recursive

Output:
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html
2021-12-09 12:23:20      16328 samplePrefix/file_1.txt
2021-12-09 12:23:20      29325 samplePrefix/sampleSubPrefix/file_1.css

Ця команда виводить список усіх об’єктів у сегменті S3. Зауважте, що об’єкти з префіксом samplePrefix/ та всі підпрефікси також відображаються.

Команда mb

Команда mb використовується для створення нових сегментів S3. Це доволі проста команда, але ім’я нового сегмента має бути унікальним для всіх сегментів S3.

Використання

aws s3 mb <BUCKET_NAME>

Приклад

Створення нового сегмента у певному регіоні

aws s3 mb myUniqueBucketName --region eu-west-1

Команда mv

Команда mv призначена для переміщення даних в та з сегментів S3. Подібно до команди cp, команда mv використовується для переміщення даних з локального комп’ютера в S3, з S3 на локальний комп’ютер, або між двома сегментами S3.

Відмінність між командою mv та cp полягає у тому, що при використанні mv файл видаляється з джерела. AWS переміщує цей файл у пункт призначення. Є багато параметрів, які можна налаштувати для команди.

Використання

aws s3 mv <ДЖЕРЕЛО> <ПРИЗНАЧЕННЯ> [--опції]

Приклади

Переміщення даних з локального комп’ютера в S3

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

Переміщення даних з S3 на локальний комп’ютер

aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

Переміщення даних між сегментами S3

aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Переміщення даних з локального комп’ютера в S3 – IA

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

Переміщення всіх даних з префіксу в S3 до локальної папки.

aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

Команда presign

Команда presign генерує попередньо підписану URL-адресу для ключа в сегменті S3. Її можна використовувати для створення URL-адрес, які дозволяють іншим користувачам отримати доступ до файлу за вказаним ключем сегмента S3.

Використання

aws s3 presign <OBJECT_KEY> --expires-in <ЧАС_У_СЕКУНДАХ>

Приклад

Створення попередньо підписаної URL-адреси, дійсної протягом 1 години для об’єкта в сегменті.

aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

Output:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96

Команда rb

Команда rb призначена для видалення сегментів S3.

Використання

aws rb <BUCKET_NAME>

Приклад

Видалення сегмента S3.

aws s3 mb myBucketName
# Ця команда завершиться помилкою, якщо в сегменті є дані.

Видалення сегмента S3 разом з даними у ньому.

aws s3 mb myBucketName --force

Команда rm

Команда rm використовується для видалення об’єктів у сегментах S3.

Використання

aws s3 rm <S3Uri_To_The_File>

Приклади

Видалення одного файлу з сегмента S3.

aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

Видалення всіх файлів з певним префіксом у сегменті S3.

aws s3 rm s3://bucket_name/sample_prefix --recursive

Видалення всіх файлів у сегменті S3.

aws s3 rm s3://bucket_name --recursive

Команда sync

Команда sync копіює та оновлює файли з джерела в пункт призначення, подібно до команди cp. Важливо розуміти різницю між cp і sync. Команда cp копіює дані з джерела в пункт призначення, навіть якщо вони там вже існують.

Крім того, cp не видаляє файли з місця призначення, якщо вони були видалені з джерела. Проте, sync перевіряє місце призначення перед копіюванням і копіює лише нові та оновлені файли. Команда sync схожа на фіксацію та відправку змін до віддаленої гілки в git. Вона пропонує багато параметрів для налаштування.

Використання

aws s3 sync <ДЖЕРЕЛО> <ПРИЗНАЧЕННЯ> [--опції]

Приклади

Синхронізація локальної папки з S3

aws s3 sync ./local_folder s3://bucket_name

Синхронізація даних S3 з локальною папкою

aws s3 sync s3://bucket_name ./local_folder

Синхронізація даних між двома сегментами S3

aws s3 sync s3://bucket_name s3://bucket_name_2

Переміщення даних між двома сегментами S3, за винятком всіх файлів .txt

aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "*.txt"

Команда website

Сегменти S3 можна використовувати для хостингу статичних веб-сайтів. Команда website використовується для налаштування статичного веб-сайту S3 для вашого сегмента.

Ви вказуєте індексний файл та файл помилок, а S3 надає URL-адресу, за якою ви можете переглянути ваш веб-сайт.

Використання

aws s3 website <S3_URI> [--опції]

Приклад:

Налаштування статичного хостингу для сегмента S3 та вказання індексного файлу та файлу помилок.

aws s3 website s3://bucket_name --index-document index.html --error-document error.html

Висновок

Сподіваємось, цей огляд надав вам уявлення про деякі з часто використовуваних команд AWS S3 для управління сегментами. Якщо вам цікаво дізнатися більше, ви можете ознайомитися з деталями сертифікації AWS.