Amazon Simple Storage Service (S3) – хранилище файлов любого типа, любого объема, с высокой доступностью и отказоустойчивостью. Оно разработано для хранения статического контента, пользовательских данных и бэкапов.
Сервис подходит для небольших, молодых проектов с несколькими тысячами файлов и сравнительно небольшим трафиком, ведь стоимость будет максимально низкой (порядка нескольких долларов в месяц).
Но с ростом стоимость будет пропорционально увеличиваться, нужно платить не только за загрузку и раздачу файлов, но также за трафик, запросы GET и POST.
Главный недостаток S3 – высокая стоимость при загрузке и отдаче терабайтов данных.
Но и преимущества очевидные:
Весь цикл работы с сервисом ограничивается 5 действиями:
Все файлы (фото, видео, документы и т.д) хранятся в контейнерах (bucket). Самый простой способ создания новых bucket-ов – использовать веб-консоль [https://console.aws.amazon.com/s3/ Amazon S3]. А так это реализуется средствами PHP:
$result = $client->createBucket([
** ‘ACL’ => ‘private’,**
** ‘Bucket’ => ‘test-bucket’,**
‘CreateBucketConfiguration’ => [
** ‘LocationConstraint’ => ‘eu-central-1’,**
],
]);
## С указанием прав доступа, имени контейнера и региона
Также можно задействовать SDK для Ruby, Java и .NET ([http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html#create-bucket-get-location-console достаточно сложно и обширно]), и curl в виде:
curl -v https://testbucket.s3.amazonaws.com/
-H “Authorization: AWS4-HMAC-SHA256
Credential=AKIAIOSFODNN7EXAMPLE/20160530/us-east-1/s3/aws4_request,
SignedHeaders=host;x-amz-content-sha256;x-amz-date,
Signature=182072eb53d85c36b2d791a1fa46a12d23454ec1e921b02075c23aee40166d5a”
-H “x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855”
-H “x-amz-date: 20160530T124500Z”
## Создание нового контейнера с указанием учетных данных
Название контейнера может быть представлено в виде URL:
http://bucket.s3-**aws-region**.amazonaws.com
# Или
http://s3-**aws-region**.amazonaws.com/bucket
## Краткие названия регионов доступны в документации, по умолчанию US East (N. Virginia)
Для работы с S3 имеется достаточное количество 3rd party tools, один из лучших – консольный s3cmd для Ubuntu:
sudo aptitude install s3cmd
## Утилита доступна в системе aptitude
Прежде чем использовать s3cmd, нужно отредактировать конфигурационный файл ~/.s3cfg, добавив учетные данные S3. Затем утилита обеспечит упрощенное управление хранилищем:
s3cmd mb s3://newbucket # создать контейнер newbucket
s3cmd rb s3://newbucket # удалить пустой контейнер newbucket
s3cmd ls [s3://BUCKET[/PREFIX]] # список файлов или корзин
s3cmd la # список всех объектов во всех корзинах
s3cmd put FILE [FILE…] s3://BUCKET[/PREFIX] # загрузить файл в корзину
s3cmd get s3://BUCKET/OBJECT LOCAL_FILE # скачать файл
s3cmd del s3://BUCKET/OBJECT # удалить файл
s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] # синхронизировать каталог S3 с локальным каталогом
s3cmd sync s3://BUCKET[/PREFIX] LOCAL_DIR # синхронизировать каталог S3 с локальным каталогом
s3cmd du [s3://BUCKET[/PREFIX]] # показать объем файлов
s3cmd setacl s3://BUCKET[/OBJECT] # изменить параметры доступа к объекту
s3cmd info s3://BUCKET[/OBJECT] # свойства объекта
## Все команды находятся в справке s3cmd –help
Похожее решение предоставляет и сам Amazon. Но [http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html AWS CLI] более универсально и работает со всеми облачными сервисами компании:
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
## Скачивает пакет с корзины S3, распаковка и установка, требуется установленный Python
После установки также нужно настроить свой профиль:
$ /usr/local/bin/aws configure **--profile test-bucket**
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: aws-region
Default output format [None]: json
## Укажите свои учетные данные, если не указать профиль, то будет настроен основной
Утилита содержит большое количество [http://docs.aws.amazon.com/cli/latest/index.html опций и дополнительных функций].
Начните знакомство с Amazon S3 через веб-консоль – она даст наглядное представление вашего хранилища. В большинстве случаев ее будет достаточно для работы с сервисом. Для продвинутой работы с хранилищем доступны SDK и другие утилиты.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…