Основные операции
Доступ к корзинам S3
Для доступа к корзинам S3 получите следующие сведения (учетные данные):
- DNS-имя оконечной точки S3;
- Идентификатор ключа доступа;
- Секретный ключ доступа.
Кибер Инфраструктура позволяет получить доступ к данным S3 через стороннее приложение S3 (Cyberduck, S3 Browser и т. п.).
Управления ACL корзин возможно путем выполнения запроса REST Amazon S3 через стороннее ПО (Postman).
Работа через CyberDuck
Создание подключения к хранилищу S3 с помощью CyberDuck
Чтобы получить доступ к S3 хранилищу с помощью CyberDuck, выполните следующие действия.
- В CyberDuck нажмите «Новое подключение».
- Укажите данные:
- Тип – Amazon S3;
- Сервер - доменное имя оконечной точки S3 (s3-01.slcloud.ru);
- ID Ключа Доступа - Идентификатор ключа доступа к S3;
- Секретный ключ доступа - Секретный ключ доступа к S3;
- По умолчанию подключение устанавливается через протокол HTTPS.
3. Нажмите «Подключиться»
Важно! Для работы новых версий CyberDuck с S3 необходимо скачать поддержку путей для программы по адресу https://profiles.cyberduck.io/S3%20(Deprecated%20path%20style%20requests).cyberduckprofile Добавьте скаченный профиль, дважды нажав на него или выберите открыть с помощью CyberDuck. Дальнейшие подключения выполняется с установленным профилем.
Cyberduck ошибка c DNS при работе с S3
В Cyberduck выбираем Новое подключение, раскрываем список протоколов и нажимаем Ещё опции внизу списка:
Откроется вкладка настроек Profiles, находим в списке S3 (Deprecated path style request) и ставим напротив него галочку:
Возвращаемся в окно Новое подключение и находим в списке добавленный S3 (Deprecated path style request) и заполняем данные для подключения:
Создание корзин S3 с помощью CyberDuck
-
После того как подключение будет установлено, выберите Файл > Новая папка, чтобы создать корзину.
- Укажите имя для новой корзины, а затем нажмите Создать. Новая корзина появится в CyberDuck. Вы можете управлять ею и ее содержимым.
Управление версиями корзин S3 с помощью CyberDuck
Управление версиями позволяет поддерживать несколько вариантов одного объекта в одной и той же корзине. С его помощью можно хранить, извлекать и восстанавливать любую версию любого объекта, хранящегося в вашей корзине S3. С управлением версиями можно легко восстанавливать систему после как непреднамеренных действий пользователей, так и сбоев приложений.
Управление версиями корзин по умолчанию отключено. В CyberDuck его можно включить в свойствах корзины.
-
Выбрать корзину, щелкнуть правой кнопкой мыши и выбрать «Инфо»
-
Перейти на вкладку S3 и отметить «Версионирование бакетов».
Управление правами доступа к корзине S3 с помощью CyberDuck.
Управление правами корзины позволяет предоставить доступ к корзине пользователям, существующим в Кибер Инфраструктуре сервиса S3 хранилище. Возможно установить доступ по UserID, Email address или Все пользователям S3 Кибер инфраструктура. Возможно предоставление прав: на чтение, запись или полный доступ.
-
Выбрать корзину, щелкнуть правой кнопкой мыши и выбрать «Инфо»
-
Перейти на вкладку Права доступа, нажать шестеренку в левом нижнем углу и выбрать по какому параметру будет добавлен пользователь.
-
После добавления пользователя определить уровень прав.
- Для работы с подключенной корзиной определить ее имя в разделе Path при создании подключения к S3 с помощью CyberDuck.
Работа через S3 Browser
Доступ к хранилищу S3 с помощью S3 Browser
Чтобы получить доступ к Кибер Инфраструктура с помощью S3 Browser, выполните следующие действия.
- В S3 Browser нажмите Accounts – Add new account.
- Укажите данные:
- Display name – отображаемое имя;
- Account type – S3 Compatible Storage;
- REST Endpoint - доменное имя оконечной точки S3 (s3-01.slcloud.ru);
- Access Key ID - Идентификатор ключа доступа к S3;
- Secret Access Key - Секретный ключ доступа к S3.
3. Нажмите «Save changes». Для подключения нажмите «Account» и выберите созданное подключение.
Создание корзин S3 с помощью S3 Browser
-
После того как подключение будет установлено, выберите +New Bucket, чтобы создать корзину.
- Укажите имя для новой корзины, а затем нажмите Create new bucket. Новая корзина появится в S3 Browser. Вы можете управлять ею и ее содержимым.
Управление версиями корзин S3 с помощью S3 Browser
Управление версиями позволяет поддерживать несколько вариантов одного объекта в одной и той же корзине. С его помощью можно хранить, извлекать и восстанавливать любую версию любого объекта, хранящегося в вашей корзине S3. С управлением версиями можно легко восстанавливать систему после как непреднамеренных действий пользователей, так и сбоев приложений.
Управление версиями корзин по умолчанию отключено. В S3 Browser его можно включить в свойствах корзины.
-
Выбрать корзину, щелкнуть правой кнопкой мыши и выбрать «Edit Versioning Settings»
-
В открывшемся окне отметить чек-бокс «Enable versioning for <Имя корзины>». Нажать «ОК»
Управление правами доступа к корзине S3 с помощью S3 Browser
Управление правами корзины позволяет предоставить доступ к корзине пользователям, существующим в Кибер Инфраструктуре. Возможно установить доступ по UserID, Email address или Все пользователям S3 Кибер инфраструктура. Возможно предоставление прав: на чтение, запись или полный доступ.
-
Выбрать корзину, щелкнуть правой кнопкой мыши и выбрать «Edit Permissions (ACL)»
-
Нажать внизу «More» и выбрать необходимое действие: добавление или удаление пользователя.
-
После добавления пользователя определить уровень прав отметив необходимый чек-бокс.
-
Для работы с подключённой корзиной нажать в верхнем меню «Add External Bucket».
Действия с бакетами S3 с помощью Postman через API.
Поддерживаемые операции скорзинами:
- DELETE/HEAD/PUT Bucket
- GET Bucket (вывод списка объектов)
- GET/PUT Bucket acl
- GET Bucket location (возвращаетВосточная часть США)
- GET Bucket Object versions
- GET/PUT Bucket versioning
- GET/PUT Bucket Logging (кроме элемента запросаTargetGrants)
- Вывод списка передач почастям
Примечание:
Сведения об операциях REST Amazon S3 см. встандарте Amazon Simple Storage Service.
Сведения о методах REST Amazon S3 см. вдокументации поAPI REST Amazon S3.
Ниже приведены примеры по редактированию прав доступа к корзинам.
GET/PUT Bucket ACL
Управление правами корзины позволяет предоставить доступ к корзине пользователям, существующим в Кибер Инфраструктуре. Возможно установить доступ по UserID, Email address или Все пользователям S3 Кибер инфраструктура. Возможно предоставление прав: на чтение, запись или полный доступ. Доступ предоставляется при выполнении запроса к внешнему адресу S3.
Запросы должны выполняться от Владельца корзины.
Запрос GET:
Создать запрос через Postman:
- Выбрать Auth Type – AWS Signature;
- Указать AccessKey и SecretKey;
- В поле URL выбрать тип Get и ввести адрес подключения к S3 https://s3-01.slcloud.ru/<Имя корзины>/?acl=
Нажать «Send».
Результат запроса будет отображён в нижнем окне.
Запрос PUT:
- Выбрать Auth Type – AWS Signature;
- Указать AccessKey и SecretKey;
- В поле URL выбрать тип Get и ввести адрес подключения к S3 https://s3-01.slcloud.ru/Имя корзины/?acl=
- Создать тело запроса в следующем формате:
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>e943b877e43e5104</ID>
<DisplayName>Имя владельца</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<ID>ID пользователя</ID>
<DisplayName>Имя пользователя</DisplayName>
</Grantee>
<Permission>Права</Permission>
</Grant>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail">
<EmailAddress xmlns="">Имя почтового адреса</EmailAddress>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
- Нажать «Send»
Для проверки успешности выполнения запроса выполнить GET Bucket ACL.
После выполнения запроса корзину можно подключать пользователю, котору выданы необходимые права.
Более подробно о запросе и правилах его формирования см. https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAcl.html
S3CMD
- Установка
Для установки S3cmd в операционной системе Ubuntu используйте команду:
sudo apt install s3cmd -y
Чтобы установить S3cmd в другой ОС, ознакомьтесь сразделом установкив репозитории S3cmd на GitHub.
- Настройка
Для настройки S3cmd используйте командуs3cmd --configure. При запросе укажите значения для следующих параметров:
- Access Key— введите идентификатор ключа, который вы получили при.
- Secret Key— введите секретный ключ, который вы получили.
- Default Region— оставьте без изменений.
- S3 Endpoint— введитеs3-01.slcloud.ru.
- DNS-style bucket+hostname:port template for accessing a bucket— введитеs3-01.slcloud.ru.
- Значения остальных параметров оставьте без изменений.
Программа попытается установить соединение с S3 и получить список бакетов. В случае успеха, программа выведетSuccess. Your access key and secret key worked fine :-).
Командаs3cmd --configureсохранит настройки в файле~/.s3cfgв формате:
[default]
access_key = id
secret_key = secretKey
bucket_location = ru-central1
host_base = storage.yandexcloud.net
host_bucket = %(bucket)s.storage.yandexcloud.net
При необходимости эти настройки можно изменить напрямую в файле. Также можно указать настройки при запуске программы с помощью соответствующих параметров.
- Особенности
- S3cmd работает с Object Storage как с иерархической файловой системой и ключи объектов имеют вид пути к файлу.
- По умолчанию S3cmd загружает объекты в стандартное хранилище. Чтобы указатькласс хранилища, при загрузке объекта используйте ключ--storage-class.
- По умолчанию при загрузке объекта S3cmd может отправлять дополнительный заголовокX-Amz-Meta-S3cmd-Attrsс атрибутами вашего файла (права доступа, владельцы файла, временны́е метки). Значение заголовка сохраняется вметаданныхобъекта. Отключить отправку атрибутов можно с помощью параметраpreserve_attrs = Falseв конфигурационном файле~/.s3cfgили ключа--no-preserve.
- Примеры операций
Просмотр списка бакетов.
S3cmd ls
Создать бакет.
S3cmd mb s3://bucket_name
Загрузить несколько объектов в бакет
S3cmd put file_name_1 file_name_2 s3://bucket_name/
Загрузить объект в холодное хранилище под другим именем.
S3cmd -–storage_class TYPE_1 put file_name s3://bucket_name/object_name
Перемещение/копирование между различными классами
Для копирования объектов используется опция cp, для перемещения mv с указанием необходимого класса хранения.
S3cmd -–storage_class TYPE_1 mv s3://bucket_name/object_name s3://bucket_name/object_name_new
Получить список объектов.
S3cmd ls s3://bucket_name
Получить объект/скачать файл из бакета.
S3cmd get s3://bucket_name/object_name
Удалить объект.
S3cmd del s3://bucket_name/object_name
Удаление всех объектов из бакета
Чтобы удалить из хранилища все файлы, используйте команду rm или del с флагами –recursive и –force.
S3cmd del s3://bucket_name/ --recursive --force
Составная (multipart) загрузка.
Клиентs3cmdподдерживает составную загрузку, которая автоматически активируется при загрузке файлов размером более 15 Мб. Этот метод разбивает файл на несколько частей (чанков) и загружает их параллельно, что ускоряет процесс передачи больших файлов и повышает устойчивость к сбоям.
При необходимости составную загрузку можно отключить с помощью опции--disable-multipart.
Для изменения размера отдельных фрагментов (чанков) используйте опцию--multipart-chunk-size-mb=SIZE, где SIZE — размер каждого фрагмента в мегабайтах. По умолчанию размер фрагмента составляет 15 Мб, минимально допустимый размер — 5 Мб, максимально допустимый — 5 Гб.
Например, чтобы установить размер фрагмента на 10 Мб, используйте следующую команду:
S3cmd –multipart-chunk-size-mb=10 put file_name s3://bucket_name
Эта настройка позволяет оптимизировать загрузку больших файлов в зависимости от пропускной способности сети и требований к производительности.
Управление прерванными составными (multipart) загрузками
При прерывании составной загрузки фрагменты файлов не отображаются в бакете, но продолжают занимать дисковое пространство на сервере. Чтобы просмотреть список прерванных загрузок и узнать, какие фрагменты занимают место, используйте команду:
S3cmd multipart s3://bucket_name
Эта команда выводит дату и время начала загрузки, путь файла и уникальный идентификатор загрузки (ID).
Для удаления фрагментов неудачных загрузок используйте следующую команду:
S3cmd abortmp s3://bucket_name/file_name/ID_загрузки
Полный список команд и дополнительную информацию можно найти вдокументации S3cmd.
AWS CLI
Сервис S3 Хранилище поддерживает взаимодействие через AWS Command Line Interface (AWS CLI) — это интерфейс командной строки, предоставляемый Amazon Web Services (AWS), который позволяет пользователям управлять своими ресурсами AWS через терминал. Это открытый инструмент, который обеспечивает прямой доступ к публичным API сервисов AWS, позволяя выполнять команды для управления различными ресурсами и сервисами.
Важно!!! S3 Compatible Storage не поддерживает работу с профильными утилитами типа AWS Toolkit
Для работы Вам потребуется установить или обновить последний выпуск интерфейса командной строки AWS (AWS CLI) в соответствии с мануалами вендора: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
После установки, потребуется убедится установлен ли корректно AWS CLI , выполнив команду (с ключом $ для Linux) aws --version по выполнению которой Вы получите вывод информации о версии AWS CLI.Если Вы получите ошибку, рекомендуем выполнить перезагрузку машины.
Для дальнейшей работы потребуется настроить профиль и конфигурацию подключения выполни в команду (с ключом $ для Linux) aws configure в рамках выполнения которой Вам потребуется ввести «Идентификатор ключа доступа к S3», «Секретный ключ доступа к S3», «Регион» - укажите us-east-1 , «Формат» - укажите json
По завершении выполнения будут созданы файлы конфигурации и учетных данных в следующих директориях:
- Для Linux:
- Файл конфигурации: ~/.aws/config
- Файл учетных данных: ~/.aws/credentials
- Для Windows:
- Файл конфигурации: C:\Users\USERNAME\.aws\config
- Файл учетных данных: C:\Users\USERNAME\.aws\credentials
Далее потребуется открыть файл конфигурации config добавить строку endpoint_url = https://s3-01.slcloud.ru и сохранить изменения.
Пример конфигурации
Для проверки успешной настройки профиля и конфигурации, попробуем вывести список бакетов выполнив команду (с ключом $ для Linux) aws s3 ls , и получим предупреждение по ошибке верификации SSL , сертификата, добавив ключ --no-verify-ssl для отключения проверки SSL-сертификата что получить результат выполнения команды.
Для решения вопроса с сертификатом, откроем URL https://s3-01.slcloud.ru/ в Web-обозревателе
Далее через опции Интернет-браузера, в примере Mozilla Firefox, откроем меню получения информации о странице, и выберем опцию просмотра сертификата.
Загрузите цепочку сертификатов PEM и сохраните на устройстве, с которого будет осуществляться взаимодействие, оптимальным вариантом будет являться директория с файлами конфигурации и профилем ~/.aws/
Для того что бы не устанавливать сертификат или не обозначать его в каждом запросе, следует скорректировать настройку конфигурации, в файл config добавим строку ca_bundle = ****\.aws\slcloud-ru-chain.pem , где потребуется указать абсолютный путь к сертификату
Функциональность AWS CLI при работе с S3
AWS CLI предоставляет мощные инструменты для управления Amazon S3, позволяя выполнять множество задач. Вот некоторые из них:
- Управление бакетами:
- Создание и удаление бакетов.
- Изменение настроек бакетов, таких как политика доступа и версия объектов.
- Управление объектами:
- Загрузка файлов в S3 с помощью команд aws s3 cp или aws s3 sync.
- Скачивание объектов из S3.
- Удаление объектов с помощью команды aws s3 rm.
- Копирование и перемещение объектов:
- Копирование объектов между бакетами или внутри одного бакета.
- Перемещение объектов с помощью команды aws s3 mv.
- Синхронизация данных:
- Синхронизация локальных директорий с бакетами S3, что позволяет поддерживать актуальность данных.
- Управление версиями объектов:
- Включение и отключение версионирования для бакетов.
- Управление версиями объектов, включая восстановление предыдущих версий.
- Настройка политик доступа:
- Установка и изменение политик доступа к бакетам и объектам, что позволяет контролировать, кто может получать доступ к данным.
- Мониторинг и управление:
- Получение информации о содержимом бакетов и объектах, включая метаданные.
- Использование команд для получения статистики и анализа использования S3.
- Работа с метаданными:
- Установка и изменение метаданных объектов при загрузке или обновлении.
Подробную информацию по использованию AWS CLI можно получить в руководстве вендора: https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
Примеры работы с AWS CLI
# Список всех бакетов с датами создания
aws s3 ls
# Список содержимого конкретного бакета
aws s3 ls s3://имя_бакета
# Рекурсивный список всех объектов в бакете
aws s3 ls --recursive s3://имя_бакета
Вывод занимаемого объема объектами в бакете. S3 использует концепцию бакетов для организации и управления данными. Каждый бакет представляет собой контейнер для объектов, и именно на уровне бакетов контролируется объем хранимых данных.
# Получение списка объектов с размерами
aws s3api list-objects --bucket имя_бакета --query
'Contents[].[Size, Key]'
#Подсчет общего количества байтов, занимаемое всеми объектами в указанном бакете
aws s3api list-objects --bucket имя_бакета --query
'[sum(Contents[].Size)]'
#Получение информации о конкретном объекте в бакете
aws s3api head-object --bucket имя_бакета --key
путь_имя_объекта
#Копирование объекта внутри бакета
aws s3 cp s3://имя_бакета/имя_объекта
s3://имя_бакета/имя_копии_объекта
#Создание нового бакета
aws s3 mb s3://имя_нового_бакета
Важно!!! Доступные опции и функциональность AWS CLI зависят от используемой вами версии AWS CLI, версии S3, типа S3 (В рамках сервиса используется только S3 Compatible Storage), а также от операционной системы и её конфигурации. В приведенных выше примерах используется aws-cli/2.24.19, Python/3.12.9 на Windows 10 (exe/AMD64) через оснастку PowerShell.
При возникновении ошибок «An error occurred (MissingContentLength) when calling the PutObject operation: You must provide the Content-Length HTTP header» попробуйте понизить версию AWS , либо удалить текущую и установить подходящую версию. Последние версии AWS могут иметь ошибки и изменения в работе привычных функций.
Сценарии использования объектного хранилища
Бэкапы и аварийное восстановление
Один из популярнейших сценариев использования хранилища S3 — хранение бэкапов. Это необходимо для защиты организации от потери данных. Удобство S3 здесь будет состоять в том, что это хранилище, во-первых, поддерживает интеграцию с большинством систем резервного копирования, во-вторых — позволяет эффективно управлять версиями файлов с момента их размещения в облаке.
Файлы мобильных и web-приложений
Благодаря доступу по HTTP API и удобству масштабирования, S3 можно эффективно использовать и при разработке web-приложений. Записанные в тэгах метаданные позволяют в процессе разработки обращаться по API к объектам, лежащим в объектном хранилище. К примеру, в объектном хранилище содержатся музыкальные трэки, которые пользователь может скачать или воспроизвести, воспользовавшись приложением. Для передачи ему списка трэков по критерию (исполнитель, жанр, год выхода и т.д.) не требуется осуществлять сортировку на стороне приложения — это может быть сделано и внутри хранилища в результате передачи запроса по API.
«Большие данные»
S3 может в реальном времени создавать подборки данных по заданным параметрам. Это свойство также серьезно упрощает жизнь компаниям, работающим с Big Data: речь идет о маркетинге, перевозках, автомобилестроении, здравоохранении, науке, сельском хозяйстве и других сферах, в которых происходит агрегация слабо структурированных данных, нуждающихся в дальнейшем анализе.
Мультимедийные файлы
Объектное хранилище S3 за счет своей масштабируемости также прекрасно подходит сервисам, хранящим большие архивы мультимедийных файлов: речь может идти от электронных библиотек до видеохостингов.
Архивы
S3 удобно и для «холодного» хранения больших объемов данных, к которым редко требуется обращаться. Речь может идти о записях камер, записях разговоров с клиентами, разнообразно

Не нашли инструкцию?
Заполните форму, и наш специалист свяжется с вами.
Мы дополним информацию и ответим на ваш вопрос.
Оставить заявку