AWS S3 — один из самых популярных сервисов AWS на сегодняшний день. Это высокодоступное, долговечное и экономически эффективное объектное хранилище в облаке AWS.
Как вы знаете, вы можете создавать и управлять своими ведрами S3 с помощью различных инструментов, таких как консоль AWS, CLI, CloudFormation и т.д. . Однако ничто не сравнится с AWS CLI, когда дело доходит до управления вашим ведром.
Выполнить команду CLI легко и быстро.
В этом посте мы рассмотрим несколько наиболее важных команд S3 CLI, которые могут помочь вам при работе с S3.
Советуем прочитать: 5 способов создания и управления ресурсами на AWS
- Необходимые условия
- Базовый обзор S3 и CLI с S3
- Шпаргалка по командам AWS S3 CLI
- 1. Создание ведра
- Создать ведро в регионе по умолчанию
- Создать ведро в определенном регионе
- 2. Вывести список всех ведер
- 3. Перечислить содержимое ведра
- 4. Копирование файлов в S3 и из S3
- Копирование одного файла из локального хранилища в S3
- Копирование одного файла из S3 в локальный
- Копирование одного файла из S3 в S3
- Копирование нескольких объектов из одного ведра S3 в другое
- 5. Выяснение количества объектов и общего размера ведра
- 6. Генерация URL-адреса с предварительной подписью для объекта
- 7. Перемещение файла в или из ведра S3
- 8. Синхронизация ведра S3 с другим ведром или локальной директорией и наоборот
- 9. Удаление файла из ведра
- 10. Удалить все файлы из ведра
- 11. Удаление ведра
- Заключение
- Ресурсы
Необходимые условия
Прежде чем использовать AWS CLI для управления вашим ведром, вам необходимо установить CLI на вашей машине и настроить его, используя ваши учетные данные (ключ доступа/секретный ключ).
Вот пошаговое руководство, как это сделать — Как установить и настроить AWS CLI в вашей системе
Примечание: Если вы не используете CLI на регулярной основе и просто хотите протестировать несколько команд, есть более быстрый вариант из самой консоли AWS. Вы можете использовать AWS CloudShell, который показан на скриншоте ниже. Нажмите на значок терминала в верхнем меню вашей учетной записи AWS, и откроется готовый к использованию терминал. В этом терминале уже установлен CLI и настроены ваши учетные данные.
Рекомендуем прочитать: Все, что вам нужно знать о AWS CloudShell — вашем CLI на основе браузера
Базовый обзор S3 и CLI с S3
Прежде чем приступить к работе с командами CLI, нам необходимо знать несколько основных терминов AWS S3.
- Ведро (Bucket): Это контейнер верхнего уровня, в котором вы храните свои объекты.
- Объекты: Любой элемент, который хранится в ведре S3.
- Префикс: Любая папка, которая находится в вашем ведре.
Вы используете команду aws s3 CLI для создания и управления вашим ведром s3 и объектами.
Вот как выглядит основной синтаксис.
aws s3 <Command> [<Arg> ...]
Вы можете использовать несколько аргументов, например —region, —recursive, —profile и т.д.
Команды или операции, которые вы можете использовать (скопировано из документации AWS)
- cp
- ls
- mb
- mv
- назначить
- rb
- rm
- синхронизировать
- сайт
Вы можете использовать cp, mv
и rm
для одного объекта или всех объектов под ведром или префиксом, используя опцию —recursive.
Шпаргалка по командам AWS S3 CLI
- Создать ведро
- Перечислить все ведра
- Перечислить содержимое ведра
- Копировать файлы в S3 и из S3
- Узнать количество объектов и общий размер ведра
- Сгенерировать URL-адрес с предварительной подписью для объекта
- Переместить файл в ведро S3 или из него
- Синхронизировать ведро S3 с другим ведром или локальным каталогом и наоборот
- Удалить файл из ведра
- Удалить все файлы из ведра
- Удаление ведра
1. Создание ведра
Для создания ведра используется команда mb. mb означает make bucket.
Создать ведро в регионе по умолчанию
aws s3 mb s3://bucket-name
Вышеприведенная команда создает ведро в регионе по умолчанию, настроенном в вашем CLI. Если вы хотите создать ведро в определенном регионе, укажите —region, как показано ниже.
Создать ведро в определенном регионе
aws s3 mb s3://mybucket --region us-west-1
Пример —
aws s3 mb s3://cloudkatha-cli-bucket
Примечание: Обратите внимание, что имена ведер S3 уникальны во всем мире. Поэтому если вы создадите ведро с именем ‘abc’, никто другой не сможет создать ведро с таким же именем даже в любой другой учетной записи. Поэтому всегда выбирайте уникальное имя, характерное для вашего бизнеса, например, я добавил cloudkatha в имя своего ведра. Таким образом, оно уникально для меня.
Рекомендуемое чтение: Вот почему имя ведра S3 уникально во всем мире
2. Вывести список всех ведер
Команда s3 ls выводит список всех ведер в вашей учетной записи AWS, если у вас есть на это права.
aws s3 ls
Как видно на скриншоте ниже, она показывает все ведра в моем аккаунте.
3. Перечислить содержимое ведра
Перечисляет содержимое ведра. В идеале здесь перечислены все объекты и префиксы внутри ведра.
aws s3 ls s3://bucket-name
Например.
aws s3 ls s3://demo-talk-with-anu
Примечание: Обратите внимание, что команда ls по умолчанию перечисляет только объекты внутри папки, но не вложенные папки, поэтому если вы хотите перечислить их все, используйте следующую команду.
aws s3 ls s3://demo-talk-with-anu --recursive
Как вы заметили, мы добавили опцию —recursive к предыдущей команде.
4. Копирование файлов в S3 и из S3
Мы используем команду s3 cp для копирования одного или нескольких объектов в ведро S3 и из него.
Копирование одного файла из локального хранилища в S3
aws s3 cp localPath s3://bucket-name
Например.
aws s3 cp sample.txt s3://demo-talk-with-anu
Копирование одного файла из S3 в локальный
aws s3 cp s3://bucket-name/filename.txt ./
например.
aws s3 cp s3://demo-talk-with-anu/sample.txt ./
Здесь sample.txt копируется в текущий рабочий каталог.
Копирование одного файла из S3 в S3
aws s3 cp s3://bucket-name/example s3://my-bucket/
Пример-
aws s3 cp s3://demo-talk-with-anu/index.html s3://techtalk-with-preeti/
Копирование нескольких объектов из одного ведра S3 в другое
Копирует все объекты в s3://bucket-name/example в другое ведро.
aws s3 cp s3://bucket-name/example s3://my-bucket/
Например.
aws s3 cp s3://demo-talk-with-anu/website s3://techtalk-with-preeti/
В идеале вы можете создать свою собственную комбинацию источника и назначения и копировать объекты в или из ведра s3.
5. Выяснение количества объектов и общего размера ведра
Выяснение общего размера ведра — довольно полезная команда, которая иногда бывает необходима. Вы можете использовать команду s3 ls с опциями —recursive, —summarize и —human-readable, как показано ниже.
aws s3 ls s3://bucket-name --recursive --summarize --human-readable
Например.
aws s3 ls s3://demo-talk-with-anu --recursive --summarize --human-readable
Как вы можете видеть выше, общее количество объектов и общий размер также возвращаются в удобном для чтения формате.
6. Генерация URL-адреса с предварительной подписью для объекта
Вы можете использовать предварительно подписанный URL для предоставления доступа к объекту S3. Вы также можете использовать опцию --expires-in
, чтобы указать, когда истекает срок действия предписанного URL.
По умолчанию это 3600 секунд, а максимум — 604800 секунд.
aws s3 presign s3://bucket-name/filename.html
Пример —
aws s3 presign s3://demo-talk-with-anu/index.html
Примечание: Как вы можете заметить на скриншоте выше, AMz-Expires = 3600 показано, так как это значение по умолчанию. Вы можете указать собственное значение, например.
aws s3 presign s3://demo-talk-with-anu/index.html --expires-in 604800
7. Перемещение файла в или из ведра S3
Для перемещения объекта или файла используется команда s3 mv. Команда s3 mv перемещает локальный файл или объект S3 в другое место локально или в S3.
aws s3 mv source destination
Пример —
aws s3 mv sample.txt s3://mybucket/test2.txt
Примечание: Как и ожидалось от команды move, эта команда перемещает объект/файл в место назначения и удаляет/удаляет его из источника.
8. Синхронизация ведра S3 с другим ведром или локальной директорией и наоборот
Вы можете синхронизировать локальную папку с s3, префикс s3 с локальной папкой или папку s3 с другой папкой s3.
В приведенном ниже фрагменте синтаксиса указаны все параметры источника и назначения.
sync <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri>
Например.
aws s3 sync s3://mybucket .
с помощью приведенной выше команды все содержимое mybucket будет загружено в текущий каталог.
Синхронизация двух ведер mybucket1 и mybucket2
aws s3 sync s3://mybucket1 s3://mybucket2
9. Удаление файла из ведра
Вы можете удалить файл из ведра s3 с помощью команды s3 rm. Синтаксис выглядит следующим образом.
aws s3 rm s3://bucket-name/filename
Например.
aws s3 rm s3://demo-talk-with-anu/index.html
10. Удалить все файлы из ведра
Как мы видели в предыдущем примере, мы использовали команду s3 rm для удаления файла. Однако, если вы хотите удалить все объекты, даже присутствующие во вложенных папках, вы можете, как обычно, использовать опцию —recursive.
aws s3 rm s3://mybucket --recursive
Пример —
aws s3 rm s3://demo-talk-with-anu --recursive
11. Удаление ведра
Для удаления ведра можно использовать команду s3 rb. rb здесь означает remove bucket.
Удаление пустого ведра:
aws s3 rb s3://bucket-name
Как вы уже знаете, если вы попытаетесь удалить пустое ведро, все пройдет хорошо, но если вы попытаетесь удалить ведро, в котором есть некоторые объекты, приведенная выше команда не выполнится.
Если вы хотите удалить ведро с объектами, используйте опцию —force. Использование опции —force в команде сначала удалит все объекты и префиксы, а затем удалит ведро.
Удаление ведра с объектами
aws s3 rb s3://bucket-name --force
Пример
aws s3 rb s3://demo-talk-with-anu --force
Как видно на скриншоте выше, сначала выполняются три операции удаления, а затем операция remove_bucket.
Заключение
В этом посте мы изучили некоторые наиболее используемые команды высокого уровня AWS S3 CLI для управления ведрами и объектами.
Мы также узнали, что некоторые команды, такие как cp, mv
и rm
могут быть использованы для одного объекта или всех объектов в ведре или префиксе с помощью опции —recursive.
Помимо этого, существует множество опций, которые вы можете использовать, например —region, —profile, —dryrun и т.д.
Надеюсь, статья была полезной для вас.
Не стесняйтесь обращаться к официальной документации для получения более подробной информации.
Ресурсы
Справочник по AWS CLI:
aws s3
aws s3 cp
aws s3 mb
aws s3 mv
aws s3 ls
aws s3 rb
aws s3 rm
aws s3 sync
Эта статья была первоначально опубликована в моем блоге CloudKatha. Вы можете ознакомиться с другими моими работами.
Надеюсь, вам понравилось читать эту статью.