Amazon S3

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:20, 7 октября 2020.
Amazon Simple Storage Service
AWS (Amazon Web Services Logo).svg
Amazon S3 Bucket with Objects
Type of site
Cloud storage
Available in Russian
Owner Amazon.com
Website aws.amazon.com/s3/
Commercial Yes
Registration Required
Launched 14 March 2006 года; 15 years ago (2006-03-14)
Current status Active

Amazon S3 (Служба хранения) - это веб-сервис представленный Amazon Web Services. Amazon S3 обеспечивает хранение через интерфейсы веб-сервисов (REST, SOAP и BitTorrent).[Источник 1] Amazon S3 был запущен на его пятом общедоступном веб-сервисе в США в марте 2006 [Цитата 1] и в Европе в ноябре 2007.[Цитата 1]

Amazon S3 использует ту же масштабируемую инфраструктуру хранения, которую Amazon.com использует для работы своей глобальной сети электронной коммерции. Amazon S3 можно использовать для хранения объектов любого типа, что позволяет использовать их, например, хранилище для интернет-приложений, резервное копирование и восстановление, аварийное восстановление, архивы данных, озера данных для аналитики и гибридное облачное хранилище. Amazon S3 представляется на рынке как простой сервис хранилища, который обеспечивает чрезвычайно надежную, высокодоступную и бесконечно масштабируемую инфраструктуру для хранения данных по очень низким ценам.

Проект

Amazon Web Services (AWS) не предоставляет публично подробные сведения о техническом проектировании S3, Amazon S3 управляет данными с помощью архитектуры объектного хранилища[Цитата 1], которая стремится обеспечить масштабируемость, высокую доступность и низкую задержку с надежностью 99,999999999% и 99,95%. до 99,99% доступности (хотя нет соглашения об уровне обслуживания для надежности).

Основные единицы хранения Amazon S3 - это объекты, которые организованы в сегменты. Общий объем хранимых данных и количество объектов не ограничены. Данные хранятся как объекты в ресурсах, которые называют корзинами, при этом размер отдельных объектов Amazon S3 может составлять от 0 байт до 5 ТБ. Самый крупный объект, который можно загрузить через один запрос PUT – 5 гигабайт. Каждый объект идентифицируется уникальным, назначаемым пользователем ключом. [Цитата 1] Сегментами можно управлять с помощью консоли, предоставляемой Amazon S3, программно с помощью AWS SDK или с помощью интерфейса прикладного программирования (API) Amazon S3 REST. [Источник 2][Источник 3] Кроме того, объекты можно загружать с помощью интерфейса HTTP GET и протокола BitTorrent.

Запросы авторизуются с помощью списка управления доступом, связанного с каждым сегментом объекта, и поддерживают управление версиями, которое по умолчанию отключено. [Источник 3] Поскольку сегменты обычно имеют размер монтируемой файловой системы в других системах, эта схема управления доступом является очень крупномасштабной, т.е. вы не можете иметь уникальные элементы управления доступом, связанные с отдельными файлами.

Имена и ключи сегментов выбираются так, чтобы объекты можно было адресовать с помощью URL-адресов HTTP:

  • http://s3.amazonaws.com/bucket/key (for a bucket created in the US East (N. Virginia) region)
  • https://s3.amazonaws.com/bucket/key
  • http://s3-region.amazonaws.com/bucket/key
  • https://s3-region.amazonaws.com/bucket/key
  • http://s3.region.amazonaws.com/bucket/key
  • https://s3.region.amazonaws.com/bucket/key
  • http://s3.dualstack.region.amazonaws.com/bucket/key (for requests using IPv4 or IPv6)
  • https://s3.dualstack.region.amazonaws.com/bucket/key
  • http://bucket.s3.amazonaws.com/key
  • http://bucket.s3-region.amazonaws.com/key
  • http://bucket.s3.region.amazonaws.com/key
  • http://bucket.s3.dualstack.region.amazonaws.com/key (for requests using IPv4 or IPv6)
  • http://bucket.s3-website-region.amazonaws.com/key (if static website hosting is enabled on the bucket)
  • http://bucket.s3-website.region.amazonaws.com/key (if static website hosting is enabled on the bucket)
  • http://bucket.s3-accelerated.amazonaws.com/key (where the filetransfer exits Amazons network at the last possible moment so as to give the fastest possible transfer speed and lowest latency)
  • http://bucket.s3-accelerated.dualstack.amazonaws.com/key
  • http://bucket/key (where bucket is a DNS CNAME record pointing to bucket.s3.amazonaws.com)

Amazon S3 можно использовать для замены значительной существующей (статической) инфраструктуры веб-хостинга объектами, доступными для клиентов HTTP. [Цитата 2] Механизм аутентификации Amazon AWS позволяет владельцу корзины создать аутентифицированный URL-адрес, действительный в течение определенного периода времени.

Каждый элемент в корзине также может использоваться в качестве потока BitTorrent. Магазин Amazon S3 может выступать в качестве исходного хоста для торрента, и любой клиент BitTorrent может получить файл. Это может значительно снизить стоимость полосы пропускания для загрузки популярных объектов. Хотя использование BitTorrent действительно снижает пропускную способность, AWS не обеспечивает собственного ограничения пропускной способности, и поэтому пользователи не имеют доступа к автоматическому контролю затрат. Это может привести к тому, что пользователи бесплатного уровня Amazon S3 будут накапливать огромные счета. Представители AWS заявили, что функция ограничения пропускной способности находилась в разработке с 2006 по 2010 год [Цитата 3], но в 2011 году эта функция больше не разрабатывалась. [Цитата 1]

Существуют различные файловые системы на основе файловой системы пользовательского режима (FUSE) для Unix-подобных операционных систем (Linux и т. Д.), которые можно использовать для монтирования корзины S3 в качестве файловой системы, например как S3QL. Семантика файловой системы Amazon S3 отличается от семантики файловой системы POSIX, поэтому файловая система может вести себя не так, как ожидалось. [Цитата 1]

Хостинг всех веб-сайтов

Amazon S3 предоставляет возможность размещать статические HTML-сайты с поддержкой индексных документов и ошибок. [Цитата 2]

Веб-сайты, размещенные на S3, могут назначать страницу по умолчанию для отображения и другую страницу для отображения в случае частично недействительного URL-адреса, такого как ошибка 404, которые предоставляют полезный контент посетителям URL-адреса, содержащего имя хоста записи CNAME, а не прямого Amazon. Ссылка на корзину S3, когда URL-адрес не содержит действительного ключа объекта S3, например, когда случайный пользователь сначала посещает URL-адрес, который является пустым именем хоста, отличным от Amazon.

Логирование Amazon S3

Amazon S3 позволяет пользователям включать или отключать логирование. Если этот параметр включен, логи хранятся в корзинах Amazon S3, которые затем можно анализировать. Эти логи содержат полезную информацию, такую ​​как:

  • Дата и время доступа к запрошенному контенту
  • Используемый протокол (HTTP, FTP и т. Д.)
  • Коды состояния HTTP
  • Turnaround time
  • Сообщение HTTP-запроса

Инструменты Amazon S3

Amazon S3 предоставляет API для разработчиков. [Источник 4] Консоль AWS предоставляет инструменты для управления файлами и их загрузки, но она не способна управлять большими сегментами или редактировать файлы. [Источник 4] Сторонние веб-сайты, такие как S3edit.com, или программное обеспечение, такое как Cloudberry Explorer, ForkLift и WebDrive, имеют возможность редактировать файлы на Amazon S3. [Цитата 1]

Основные возможности Amazon S3

Amazon S3 предлагает различные инструменты, которые позволяют организовать и контролировать для поддержки определенных сценариев использования, сокращения расходов, обеспечения безопасности и соблюдения законодательных требований. Хранилище S3 позволяет добавлять теги метаданных в объекты, перемещать и сохранять данные в классах хранилища S3, настраивать и применять элементы управления доступом к данных, защищать данные от несанкционированного использования, применять аналитику больших данных и отслеживать данные на уровне объекта и корзины. Доступ к объектам можно получить через точки доступа S3 или непосредственно через имя узла контейнера.[Источник 1]

Управление хранилищем и его мониторинг

Неиерархическая структура Amazon S3 и различные возможности управления помогают клиентам любого уровня и из любых отраслей организовать данные выгодным для бизнеса и сотрудников образом. Все объекты хранятся в корзинах S3, и их можно организовать с помощью общих имен, которые называют префиксами. Кроме того, в каждый объект можно добавить до 10 пар «ключ-значение», которые называют тегами объектов S3. Эти пары можно создавать, обновлять и удалять в любое время в течение жизненного цикла объекта. Для отслеживания объектов и связанных с ними тегов, корзин и префиксов, можно использовать отчет S3 Inventory, в котором указываются объекты, хранимые в корзине S3 или имеющие определенный префикс, а также соответствующие метаданные и статус шифрования.[Источник 5] Сервис S3 Inventory можно настроить для ежедневного или еженедельного создания отчетов. [Источник 1]

Управление хранилищем

С помощью имен корзин, префиксов, тегов объектов S3 и сервиса S3 Inventory можно классифицировать данные, создавать отчеты и настраивать другие возможности S3. Сервис S3 Batch Operations упрощает эти задачи, независимо от количества объектов, и позволяет управлять данными в Amazon S3 в любом масштабе. Используя S3 Batch Operations, можно копировать объекты между корзинами, заменять наборы тегов объектов, изменять элементы управления доступом и восстанавливать архивные объекты из Amazon S3 Glacier с помощью одного запроса к API S3 или нескольких щелчков мыши в консоли управления Amazon S3. С помощью S3 Batch Operations также можно применять функции AWS Lambda к объектам для выполнения настраиваемой бизнес-логики, например для обработки данных или перекодировки изображений. [Источник 1]

Amazon S3 также поддерживает возможности для контроля версий данных и предотвращения случайного удаления, а также для репликации данных в пределах одного региона AWS или в другой регион AWS. С помощью управления версиями в S3 можно без труда сохранять, извлекать и восстанавливать все версии объекта, хранящегося в Amazon S3, что позволяет восстанавливать систему после непреднамеренных действий пользователей и сбоев приложений.

С помощью репликации в S3 можно реплицировать объекты (и связанные метаданные и теги объектов) в пределах одного региона AWS или в другие регионы AWS для снижения задержек, обеспечения соответствия требованиям, безопасности, аварийного восстановления и ряда других примеров использования. Межрегиональная репликация (CRR) в S3 связана с исходной корзиной S3 и реплицирует объекты в целевую корзину в другом регионе AWS. Репликация в рамках региона (SRR) в Amazon S3 реплицирует объекты между корзинами в пределах одного региона.[Источник 1]

Можно также применить политики «однократная запись, многократное чтение» (WORM) с помощью S3 Object Lock. Возможность управления S3 блокирует удаление версий объектов в течение периода хранения, установленного клиентом. Эта возможность позволяет применять политики хранения в качестве дополнительного уровня защиты данных либо для выполнения нормативных требований. Рабочие нагрузки можно переносить из существующих систем WORM в Amazon S3, а S3 Object Lock можно настроить на уровне объектов или корзин для предотвращения удаления версий объектов до заданной даты, которую вы можете определить самостоятельно или в соответствии с нормативными требованиями. Объекты с блокировкой S3 Object Lock сохраняют защиту WORM даже после перемещения в другие классы хранилища с политикой жизненного цикла S3. Для отслеживания объектов с блокировкой S3 Object Lock можно использовать отчет S3 Inventory, содержащий сведения о статусе WORM объектов. [Источник 5][Источник 1]

S3 Object Lock можно настроить в одном из двух режимов: [Источник 6]

  • Governance - аккаунты AWS с определенными разрешениями IAM могут снимать защиту S3 Object Lock с объектов
  • Compliance - защиту не может снять ни один пользователь, в том числе аккаунт root (если требуется большая надежность по неизменности для выполнения законодательных требований)

Мониторинг хранилища

В дополнение к этим возможностям управления, можно использовать функции S3 и другие сервисы AWS для мониторинга и контроля использования ресурсов S3. К корзинам S3 можно применять теги, распределяя расходы в рамках нескольких подразделений бизнеса (таких как центры затрат, имена приложения или владельцы), и затем использовать отчеты о распределении расходов AWS для просмотра сведений об использовании и расходах, сгруппированные по тегам корзины. Можно также использовать Amazon CloudWatch для отслеживания работоспособности ресурсов AWS и настройки предупреждений об оплате, которые отправляются, если предполагаемые расходы достигают предела, заданного пользователем. Другой сервис мониторинга AWS, AWS CloudTrail, отслеживает действия на уровне объекта и корзины, а также предоставляет соответствующие отчеты. Оповещения о событиях S3 можно настроить для инициации рабочих процессов, предупреждений и вызова AWS Lambda при внесении определенных изменений в ресурсы S3. Оповещения о событиях S3 можно использовать для автоматической перекодировки мультимедийных файлов после завершения загрузки в Amazon S3, обработки файлов данных по мере их поступления или синхронизация объектов с другими хранилищами данных. [Источник 6]

Классы хранилищ

Amazon S3 позволяет хранить данные в хранилищах S3 различного класса: [Источник 1]

  • S3 Standard - Общего назначения
  • S3 Intelligent‑Tiering - Неизвестная или переменчивая частота доступа
  • S3 Standard‑Infrequent Access (S3 Standard‑IA) - Нечастый доступ в разных зонах доступности
  • S3 One Zone‑Infrequent Access (S3 One Zone‑IA) - Нечастый доступ в одной зоне доступности
  • Amazon S3 Glacier (S3 Glacier) - Архивация
  • Amazon S3 Glacier Deep Archive (S3 Glacier Deep Archive) - Архивация для долгосрочного хранения данных

Каждый класс хранилища S3 поддерживает определенный уровень доступа к данным по соответствующей цене. Это значит, что критические важные производственные данные можно хранить в S3 Standard для частого доступа, нечасто используемые данные – в S3 Standard-IA или S3 One Zone-IA для сокращения расходов и архивировать данные с минимальными расходами в архивных классах хранилища – S3 Glacier и S3 Glacier Deep Archive.

Управление доступом и безопасность

Управление доступом

Для защиты данных в Amazon S3 по умолчанию пользователям предоставляется доступ только к созданным ими ресурсам S3. Можно предоставить доступ другим пользователям с помощью одной из следующих функций управления доступом или их сочетания: AWS Identity and Access Management (IAM) для создания для создания пользователей и управления их доступом, списки контроля доступа (ACL) для предоставления доступа к отдельным объектам авторизованным пользователям, политики корзины для настройки разрешений для всех объектов в одной корзине S3, точки доступа S3 для упрощения управления доступом к наборам общих данных путем создания точек доступа с именами и разрешениями для каждого приложения или набора приложений и аутентификация строки запроса для предоставления временного доступа другим пользователям с помощью временных URL-адресов. Amazon S3 также поддерживает журналы аудита, которые содержат запросы к ресурсам S3 для обеспечения полной визуализации действий пользователей и данных, которые они запрашивают.[Источник 1]

Безопасность

Amazon S3 предоставляет гибкие возможности обеспечения безопасности для предотвращения доступа неавторизованных пользователей к данным. Конечные точки VPC используются для подключения к ресурсам S3 из Virtual Private Cloud (Amazon VPC). Amazon S3 поддерживает шифрование на стороне сервера (с тремя ключевыми вариантами управления) и на стороне клиента для передачи данных. Необходимо использовать S3 Inventory для проверки статуса шифрования объектов S3. [Цитата 4]

Наборы различных механизмов контроля безопасности:[Цитата 4]

  • S3 Block Public Access – это новый набор механизмов контроля безопасности, который позволяет запретить публичный доступ к корзинам и объектам S3.
  • Access Analyzer для S3 – это возможность, которая отслеживает политики доступа к корзине и гарантирует, что они предоставляют только санкционированный доступ к вашим ресурсам S3.
  • Amazon Macie - это сервис, который используется для обнаружения и защиты конфиденциальных данных, которые хранятся в Amazon S3.

Запросы к данным без извлечения

Amazon S3 предоставляет встроенную возможность и дополнительные сервисы, которые запрашивают данные без необходимости в копировании и загрузке на отдельную аналитическую платформу или в хранилище данных. Это значит, что аналитику больших данных можно проводить непосредственно на данных в Amazon S3. S3 Select – это возможность S3, предназначенная для повышения производительности запросов на 400 % и сокращения расходов на запросы на 80 %. Она позволяет извлекать подмножество данных объекта (с помощью простых выражений SQL) вместо всего объекта, размер которого может составлять до 5 ТБ. [Источник 2]

Amazon S3 также совместим с аналитическими сервисами AWS Amazon Athena и Amazon Redshift Spectrum. Amazon Athena запрашивает данные из Amazon S3 без извлечения и загрузки в отдельный сервис или платформу. Он использует стандартные выражения SQL для анализа данных, предоставления результатов за считаные секунды, а также часто применяется для специализированного обнаружения данных. Amazon Redshift Spectrum также выполняет SQL-запросы напрямую к данным в Amazon S3 и больше подходит для сложных запросов и крупных наборов данных (размером до нескольких экзабайт). Так как AWS Amazon Athena и Amazon Redshift Spectrum используют общие форматы и каталог данных, их можно использовать для одинаковых наборов данных в Amazon S3. [Источник 1]

Передача данных

AWS предлагает целый набор сервисов передачи данных, и можно выбрать нужное решение для любого проекта по миграции данных. При миграции данных уровень подключения – очень важный фактор, и у AWS есть предложения, которые могут удовлетворить потребности в гибридном облачном хранилище, а также в переносе данных по сети и в автономном режиме.[Источник 1]

AWS Storage Gateway – это сервис гибридного облачного хранилища, который позволяет без особых усилий подключать ваши локальные приложения к хранилищу AWS Storage. Клиенты используют сервис AWS Storage Gateway, чтобы без особого труда заменять ленточные библиотеки облачным хранилищем, создавать файловые ресурсы на основе облачного хранилища или кеши с малыми задержками для доступа локальных приложений к данным в AWS.[Источник 1]

Сервис AWS DataSync позволяет просто и эффективно передавать сотни терабайтов и миллионы файлов в сервис Amazon S3 на порядок быстрее, чем средства с открытым исходным кодом. Сервис AWS DataSync автоматически выполняет многие ручные задачи или устраняет необходимость их выполнения. Перечень таких задач включает написание скриптов заданий копирования, составление расписаний и отслеживание передачи данных, проверку данных и оптимизацию использования сети. AWS Transfer Family обеспечивает полностью управляемую передачу файлов в сервис Amazon S3 с использованием протоколов SFTP, FTPS и FTP. Сервис Amazon S3 Transfer Acceleration позволяет быстро передавать файлы на большие расстояния между клиентом и корзиной Amazon S3.[Источник 1]

Сервис AWS Snow Family специально разработан для использования в периферийных расположениях, в которых либо нет сети, либо ее пропускная способность ограничена. Он позволяет использовать накопители и возможности вычислений в неблагоприятных средах. В сервисе AWS Snowball используются физически защищенные портативные накопители и периферийные вычислительные устройства, позволяющие собирать и обрабатывать данные, а также выполнять их миграцию. Клиенты могут отправлять физические устройства Snowball в AWS для миграции данных без использования сети. AWS Snowmobile – это сервис для передачи данных, объем которых измеряется эксабайтами. Он позволяет без труда перемещать большие массивы данных, например видеобиблиотеки и репозитории образов, или выполнять миграцию всего ЦОД.[Источник 1]

Вместе со сторонними поставщиками из сети AWS Partner Network (APN) клиенты также могут развертывать гибридные архитектуры хранилищ, интегрировать Amazon S3 в существующие приложения и рабочие процессы и переносить данные из облака AWS и в него.[Источник 1]

Известные пользователи

Сервис фотохостинга SmugMug использует Amazon S3 с апреля 2006 года. Они испытали ряд начальных сбоев и замедлений, но через год они описали его как «значительно более надежный, чем наше собственное внутреннее хранилище» и заявили, что сэкономили почти 1 миллион долларов. затраты на хранение. [Цитата 1]

Netflix использует Amazon S3 в качестве своей системы записи. Netflix внедрил инструмент S3mper [Цитата 1] для устранения ограничений, накладываемых Amazon S3 на конечную согласованность. [Источник 6] S3mper хранит метаданные файловой системы: имена файлов, структуру каталогов и разрешения в Amazon DynamoDB.

Reddit размещен на Amazon S3.

Bitcasa [Цитата 5] и Tahoe-LAFS-on-S3 [Цитата 1] среди прочих используют Amazon S3 для онлайн-сервисов резервного копирования и синхронизации. В 2016 году Dropbox прекратил использовать сервисы Amazon S3 и разработал собственный облачный сервер. [Цитата 1]

Mojang размещает обновления игры Minecraft и скины игроков на Amazon S3. [Цитата 1]

Tumblr, Formspring и Pinterest размещают изображения на Amazon S3.

Генеральный директор Swiftype упомянул, что компания использует Amazon S3. [Цитата 6]

Amazon S3 использовался некоторыми предприятиями в качестве решения для долгосрочного архивирования, пока в августе 2012 года не был выпущен Amazon Glacier.

API стал популярным методом хранения объектов. [Цитата 1] В результате было создано множество приложений с встроенной поддержкой Amazon S3 API, который включает приложения, записывающие данные в хранилища объектов, совместимые с Amazon S3 и Amazon S3: [Цитата 1]


Тип Название компаний Продукт
Клиент для резервоного копирования Haystack Software LLC Arq backup
Клиент для резервоного копирования CloudBerry Lab CloudBerry Backup
Клиент для резервоного копирования open-source Duplicati
Клиент для резервоного копирования Novosoft LLC Handy Backup
Файловый браузер Binarynights ForkLift (File Manager)
Файловый браузер odrive odrive
MySQL резервное копирование Oracle MySQL Enterprise Backup
Oracle Database резервное копирование Oracle Oracle Secure Backup Cloud Manager
Резервное копирование сервера Actifio Actifio
Резервное копирование сервера Atempo Digital Archive (ADA)
Резервное копирование сервера Commvault Commvault
Резервное копирование сервера Veritas NetBackup
Резервное копирование сервера Asigra Asigra Cloud Backup
Резервное копирование сервера Rubrik Rubrik
Облачное хранилище Wasabi Wasabi Hot Storage
Шлюз облачного хранилища CTERA Networks C00 Series
Шлюз облачного хранилища Avere FXT Series
Шлюз облачного хранилища EMC CloudArray
Шлюз облачного хранилища Microsoft StorSimple
Шлюз облачного хранилища Nasuni NF Series
Шлюз облачного хранилища NetApp Altavault
Шлюз облачного хранилища Panzura Global File System
Гибридное хранилище Cloudian Cloudian HyperStore
Гибридное хранилище SeaweedFS Seaweed File System
Гибридное хранилище NooBaa NooBaa Storage
Гибридное хранилище Western Digital ActiveScale
Гибридное хранилище SwiftStack SwiftStack 1space
Локальное хранилище MinIO MinIO
Локальное хранилище OpenIO OpenIO SDS
Локальное хранилище Pure Storage FlashBlade
Sync, Mount, Cache, Encrypt Rclone project Rclone
Локальное хранилище Scality RING Storage
Open Source Zenko.io Open Source S3 Server

S3 API и конкурирующие службы

[Цитата 7] Широкое распространение Amazon S3 и связанных с ним инструментов привело к появлению конкурирующих сервисов на основе S3 API. Эти службы используют стандартный интерфейс программирования; однако они различаются базовыми технологиями и поддерживающими бизнес-моделями. [Цитата 8] Стандарт облачного хранилища (например, электрические и сетевые стандарты) позволяет конкурирующим поставщикам услуг разрабатывать свои услуги и клиентов, используя разные части по-разному, но при этом общаться и обеспечивать следующие преимущества: [Цитата 1]

  1. Повышайте конкуренцию, предоставляя набор правил и равные условия для игры, поощряя выход на рынок более мелких компаний, что в противном случае могло бы быть предотвращено.
  2. Поощряйте инновации со стороны поставщиков облачных хранилищ и инструментов, а также разработчиков, потому что они могут сосредоточиться на улучшении своих продуктов и услуг, а не на совместимости.
  3. Обеспечьте экономию на масштабе при внедрении (т.е. Если поставщик услуг столкнется с отключением или когда клиенты достигнут своих лимитов и им потребуются более быстрые операционные системы или инструменты, они могут легко заменить решения).
  4. Предоставлять своевременные решения для предоставления функциональных возможностей в ответ на требования рынка (т.е. Поскольку рост бизнеса в новых регионах увеличивает спрос, клиенты могут легко менять или добавлять поставщиков услуг, просто подписавшись на новую услугу).

Примеры конкурирующих реализаций хранилищ, совместимых с Amazon S3:

  • ActiveScale (Quantum)
  • Caringo Swarm
  • Ceph with RADOS gateway
  • Cloudian HyperStore
  • CloudServer
  • Apache CloudStack
  • Connectria's Cloud Storage
  • DDN Web Object Scaler (WOS) for on-premise cloud storage
  • EMC Elastic Cloud Storage (ECS)
  • DreamHost DreamObjects
  • DigitalOcean Spaces
  • Eucalyptus
  • Cloud Object Storage for IBM public cloud or on-premise object storage (formerly Cleversafe)
  • Linode Object Storage
  • Minio Object Storage released under Apache License v2
  • NooBaa Hybrid Storage
  • Nimbula (приобретено Oracle)
  • OpenIO
  • Openstack Swift
  • Pure Storage's FlashBlade
  • NetApp StorageGRID for on-premise clouds
  • Rackspace's Cloud Files
  • Riak CS, который реализует подмножество S3 API, включая REST and ACLs on objects and buckets.
  • S3Proxy allows access to other storage backends via the S3 API
  • Scality RING
  • Wasabi

Примеры использование Amazon S3

API для взаимодействия с Amazon S3

Amazon предоставляет пакеты SDK, которые упрощают разработку приложений, предоставляя API с учетом спецификации конкретного языка для сервисов AWS.

Список поддерживаемых языков программирования:

Пример использования Amazon SDK с Python

Boto3 - это пакет разработки программного обеспечения (SDK) Amazon Web Services (AWS) для Python, который позволяет разработчикам Python создавать программное обеспечение, использующее такие сервисы, как Amazon S3 и Amazon EC2. Вы можете найти самую свежую и актуальную документацию на нашем сайте документации, включая список поддерживаемых услуг.

Настройка

Скачивание библиотеки

Предполагая, что у вас установлены Python и virtualenv, настройте свою среду и установите необходимые зависимости, как это, или вы можете установить библиотеку с помощью pip:

$ git clone https://github.com/boto/boto3.git
$ cd boto3
$ virtualenv venv
...
$ . venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m pip install -e .
$ python -m pip install boto3
Настройка AWS Credentials

Интерфейс командной строки AWS хранит конфиденциальную учетную информацию, которую вы указываете с помощью aws configure, в локальном файле с именем credentials в папке с именем .aws в вашем домашнем каталоге. Менее важные параметры конфигурации, которые вы указываете с помощью aws configure, хранятся в локальном файле с именем config, который также хранится в папке .aws в вашем домашнем каталоге.

Настройте учетные данные (например, в ~/.aws/credentials):

[default]
aws_access_key_id = YOUR_KEY_ID
aws_secret_access_key = YOUR_SECRET_KEY

Затем установите стандартный регион (например, в ~/.aws/config):

[default]
region=us-east-1

Другой способ настройки учетных данных можно найти здесь.

Использование

Запуск из интерпретатора Python:

>>> import boto3
>>> s3 = boto3.resource('s3')
>>> for bucket in s3.buckets.all():
        print(bucket.name)

Другие примеры использования Boto3.

Скачивание файлов

Методы, предоставляемые AWS SDK для Python для загрузки файлов, аналогичны тем, которые предоставляются для загрузки файлов.

Метод download_file принимает имена корзины и объекта для загрузки, а также имя файла для сохранения файла.

import boto3

s3 = boto3.client('s3')
s3.download_file('BUCKET_NAME', 'OBJECT_NAME', 'FILE_NAME')

Метод download_fileobj принимает записываемый файловый объект. Файловый объект должен быть открыт в двоичном, а не текстовом режиме.

s3 = boto3.client('s3')
with open('FILE_NAME', 'wb') as f:
    s3.download_fileobj('BUCKET_NAME', 'OBJECT_NAME', f)

Методы загрузки предоставляются классами S3 Client, Bucket и Object, и каждый класс обеспечивает идентичную функциональность.

Загрузка файлов

AWS SDK для Python предоставляет пару методов для загрузки файла в корзину S3.

Метод upload_file принимает имя файла, имя сегмента и имя объекта. Этот метод обрабатывает большие файлы, разделяя их на более мелкие фрагменты и загружая каждый фрагмент параллельно.

import logging
import boto3
from botocore.exceptions import ClientError


def upload_file(file_name, bucket, object_name=None):
    """Upload a file to an S3 bucket

    :param file_name: File to upload
    :param bucket: Bucket to upload to
    :param object_name: S3 object name. If not specified then file_name is used
    :return: True if file was uploaded, else False
    """

    # If S3 object_name was not specified, use file_name
    if object_name is None:
        object_name = file_name

    # Upload the file
    s3_client = boto3.client('s3')
    try:
        response = s3_client.upload_file(file_name, bucket, object_name)
    except ClientError as e:
        logging.error(e)
        return False
    return True

Метод upload_fileobj принимает читаемый файловый объект. Файловый объект должен быть открыт в двоичном, а не текстовом режиме.

s3 = boto3.client('s3')
with open("FILE_NAME", "rb") as f:
    s3.upload_fileobj(f, "BUCKET_NAME", "OBJECT_NAME")

Методы upload_file и upload_fileobj предоставляются классами S3 Client, Bucket и Object. Функциональность метода, предоставляемая каждым классом, идентична. Вызов метода одного класса над другим не дает никаких преимуществ.


Видео туториал

Ссылки

Цитаты

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 Amazon Web Services Launches "Amazon S3" [2006 — ]. Дата обновления: 14.03.2006. URL: http://phx.corporate-ir.net/phoenix.zhtml?c=176060&p=irol-newsArticle&ID=830816 (дата обращения: 22.09.2020)
  2. 2,0 2,1 How to use Amazon S3 for Web Hosting [2008 — ]. Дата обновления: 06.05.2008. URL: https://web.archive.org/web/20080408024708/http://www.bucketexplorer.com/documentation/amazon-s3--how-to-use-Amazon-s3-for-web-hosting.html (дата обращения: 22.09.2020)
  3. AWS Developer Forums: Limit my own bandwidth? [2006 — ] Дата обновления: 18.01.2012. URL: https://forums.aws.amazon.com/thread.jspa?threadID=10532&start=0&tstart=0 (дата обращения: 22.09.2020)
  4. 4,0 4,1 Amazon Virtual Private Cloud [2010 — ] Дата обновления: 23.03.2016. URL: https://aws.amazon.com/ru/vpc/ (дата обращения: 22.09.2020)
  5. Bitcasa Legal [2013 — ] Дата обновления: 16.05.2013. URL: https://www.bitcasa.com/legal (дата обращения: 22.09.2020)
  6. Swiftype Explains Their Cloud Stack [2014 — ] Дата обновления: 08.12.2014. URL: http://stackshare.io/posts/swiftype-explains-their-cloud-stack (дата обращения: 22.09.2020)
  7. Crossroads of Information Technology Standards [2014 — ] Дата обновления: 25.03.2014. URL: http://www.nap.edu/openbook.php?record_id=10440&page=36 (дата обращения: 22.09.2020)
  8. Cloud Community Debates, Is Amazon S3's API the Standard? (And Should It Be?) [2010 — ] Дата обновления: 19.12.2012. URL: http://readwrite.com/2010/07/12/cloud-community-debates-is-ama (дата обращения: 22.09.2020)

Источники

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 Amazon S3, Cloud Computing Storage for Files, Images, Videos. [2006 — ]. Дата обновления: 01.03.2006. URL: Aws.amazon.com (дата обращения: 22.09.2020).
  2. 2,0 2,1 open-guides/og-aws [2018 — ]. Дата обновления: 01.03.2018. URL: https://github.com/open-guides/og-aws/blob/master/README.md#s3 (дата обращения: 22.09.2020)
  3. 3,0 3,1 Amazon S3 REST API Introduction [2010 — ]. Дата обновления: 24.12.2017. URL: https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html (дата обращения: 22.09.2020)
  4. 4,0 4,1 Amazon Simple Storage Service (S3) Documentation [2007 — ] Дата обновления: 23.03.2015. URL: https://docs.aws.amazon.com/s3/index.html (дата обращения: 22.09.2020)
  5. 5,0 5,1 Amazon S3 Inventory [2010 — ] Дата обновления: 23.03.2016. URL: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html (дата обращения: 22.09.2020)
  6. 6,0 6,1 6,2 S3 Documentation [2010 — ] Дата обновления: 23.03.2016. URL: https://docs.aws.amazon.com/AmazonS3/latest/dev/ (дата обращения: 22.09.2020)