Управління та контроль інформацією може бути непростим завданням. Ці команди 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.