Интеграция Amazon S3 с WordPress

Вычислительная полно умных слов, “облачные вычисления” является последней.Но в отличие от большинства тенденций, которые выдыхаться после первоначального всплеска, облачные вычисления, чтобы остаться.Эта статья переходит S3 службы Амазонки облако хранения и направляет вас к осуществлению плагин WordPress, что резервное копирование базы данных для WordPress от Amazon S3 облаков.Обратите внимание, что это не учебник по созданию плагинов WordPress с нуля, поэтому некоторое знакомство с плагином развития assumed.



Integrating Amazon S3 With WordPress

Причина для использования Amazon S3 для хранения важных данных из “3-2-1″ резервного правило, придуманный Петром Крог.В соответствии с 3-2-1 правило, вы бы сохранить три копии всех важных данных: исходные данные, резервные копии на съемных носителях, а второй резервного копирования в другое место (в нашем случае, Amazon S3 в облаке).

Cloud Computing, Concisely

Облачных вычислений является общим термином для любых данных или программное обеспечение размещено за пределами вашей локальной системе.Облачные вычисления разделить на три основных вида услуг: инфраструктура как услуга (IaaS), платформа как сервис (PaaS) и программное обеспечение как услуга (SaaS)

.

  • Инфраструктура как serviceIaaS предоставляет услуги виртуального хранения, виртуальных машин и других аппаратных ресурсов, которые клиенты могут использовать на оплату за использование основе.Amazon S3, Amazon EC2 и Rackspace Cloud примеры IaaS.
  • Платформа как servicePaaS предоставляет виртуальные машины, интерфейсы прикладного программирования, структуры и операционных систем, которые клиенты могут использовать для своих приложений в Интернете.Force.com, Google AppEngine и Windows Azure являются примерами PaaS.
  • Программное обеспечение как serviceВозможно, самый распространенный вид услуг облака SaaS.Большинство людей пользуются услугами этого вида в день.SaaS предоставляет полную рабочую среду приложения, которые пользователь получает доступ через браузер, а не локально установленные приложения.SalesForce.com, Gmail, Google Apps и Basecamp некоторые примеры SaaS.

Для всех видов услуг, перечисленных выше, поставщик услуг несет ответственность за управление облачной системе от имени пользователя.Пользователь избавлен от скуки того, чтобы управлять инфраструктурой, необходимые для работы конкретной service.

Amazon S3 В Nutshell

Amazon Web Services (AWS) является букет из веб-сервисов, предлагаемых Amazon, которые вместе составляют платформу облачных вычислений.Наиболее существенный и самый известный из этих услуг являются Amazon EC2 и Amazon S3.AWS также включает в себя CloudFront, Simple Service Queue, SimpleDB, эластичный блок Store.В этой статье мы сосредоточимся исключительно на AmazonS3.

Amazon S3 является облачным данным инфраструктуры хранения данных, доступной пользователю программно через API веб-сервиса (либо SOAP или REST).Используя API, пользователь может хранить различные типы данных в облако S3.Они могут хранить и извлекать данные из любого места в Интернете и в любое помощью API.Но S3 имеет ничего общего с файловой системой вы используете на вашем компьютере.Многие люди думают S3 в качестве удаленной файловой системы, содержащий иерархию файлов и каталогов, размещенных на Amazon.Ничто не может быть дальше от truth.

Amazon S3 с плоским пространство имен системы хранения, лишенный всякой иерархии вообще.Каждый контейнер для хранения в S3 называют “ведро”, и каждое ведро выполняет ту же функцию, что и каталог, в обычной файловой системы.Тем не менее, нет никакой иерархии в ведро (то есть, вы не можете создать ведра в ведро).Каждый ковш позволяет сохранять различные типы данных, в размере от 1 B до огромных 5 ТБ (терабайт), хотя самый большой объект, который может быть загружен в одном запросе PUT составляет 5 Гб.Очевидно, I’ нас не экспериментировал с такими огромными files.

Файл, хранящийся в ведро называется объектом.Объект является основной единицей данных, которые хранятся на S3.Объекты состоят из данных и метаданных.Мета-данных представляет собой набор пар имя-значение, которые описывают объект.Мета-данных не является обязательным, но часто добавляет огромное значение, будь то по умолчанию мета-данные добавлены S3 (такие как дата последнего изменения) или стандартный HTTP мета-данные, такие как Content-Type.

Итак, какие объекты вы можете хранить на S3?Любой вид вам нравится.Это может быть простой текстовый файл, стилей, программирование исходный код или двоичный файл, например файл изображения, видео или ZIP.Каждый объект S3 имеет свой собственный URL, который можно использовать для доступа к объекту в браузере (если соответствующие разрешения для — подробнее об этом позже)

Вы можете написать URL в двух форматах, которые выглядят примерно так:

Имя ведро здесь намеренно простой, codediesel.Это может быть более сложной, отражающие структуру вашего приложения, как codediesel.wordpress.backup или codediesel.assets.images.

Каждый объект S3 имеет уникальный URL, образованный путем объединения следующих компонентов:

  1. Протокол (http:// или https://),
  2. S3 конечной точки (s3.amazonaws.com),
  3. Ковш имя,
  4. Объект ключ, начиная с /.

Для того, чтобы быть в состоянии идентифицировать ведра, система S3 требует, чтобы назначить имя в каждом ведре, которое должно быть уникальным для пространства имен ведро S3.Таким образом, если пользователь назван одним из ведра company-docs, вы не можете создать ведро с таким именем в любой точке пространства имен S3.Имена объектов в ведро, однако, должны быть уникальными только для этого ведра, так что, два разных ведра могут иметь объекты с тем же названием.Кроме того, вы можете описать объекты, хранящиеся в ведра с дополнительной информацией помощью мета data.

Имена ковша должны соответствовать следующим требованиям:

  • Может содержать строчные буквы, цифры,периоды (.), подчеркивание (_) и дефис (-);
  • Должно начинаться с цифры или буквы;
  • Должна быть от 3 до 255 символов;
  • Не может быть отформатирован как IP-адрес (например, 265.255.5.4).

Одним словом, Amazon S3 обеспечивает высоконадежное облачной инфраструктуры хранения данных, доступные через API SOAP или REST.Некоторые распространенные сценарии использования S3 являются:

  • Резервное копирование и storageПредоставление данных резервного копирования и хранения services.
  • Хост applicationsПредоставление услуг, развертывание, установку и управление веб-applications.
  • Хост mediaПостроить избыточным, масштабируемая и высокой доступности инфраструктуры, которая проводит видео, фото или музыку добавления и downloads.
  • Доставка softwareРазместите свою программных приложений, которые клиенты могут download.

Amazon S3 в Model

Amazon S3 является платной услугой, вам необходимо приложить кредитную карту к своему счету Amazon при регистрации.Но это удивительно низкой цене, и вы платите только за то, что вы используете, если вы не используете ресурсы в вашей учетной записи S3, вы ничего не платите.Кроме того, в рамках AWS “Свободная Статистика уровня”, при регистрации, новые AWS клиенты получают 5 Гб Amazon S3 хранение, 20.000 GET запросы, 2.000 PUT запросов и 15 ГБ передачи данных каждый месяц бесплатнодля одного year.

Итак, сколько вы платите за бесплатный период.Как грубая оценка, если вы храните 5 ГБ данных в месяц, при передаче данных в 15 Гб и 40000 GET и PUT запросов в месяц, стоимость будет около $ 2,60 в месяц.Это ниже, чем стоимость гамбургера — недорогой по любым стандартам.Цены могут измениться, так что используйте калькулятор на S3 website.

Ваш S3 использования взимается в соответствии с тремя основными параметрами:

  • Общий объем хранимых данных,
  • Общий объем данных, передаваемых в и из S3 в месяц,
  • Число запросов к S3 на month.

Ваши обвинения S3 хранения рассчитаны на подразделения, известного как гигабайт в месяц.Если вы храните 1 Гб на один месяц, вы будете платить за один гигабайт месяц, что на $ 0.14.

Ваши обвинения передачи данных на основе количества переданных данных от S3.Данные передаются из S3 взимается по скользящей шкале, начиная с $ 0,12 за гигабайт и уменьшения зависимости от объема, достигнув $ 0,050 за гигабайт для всех исходящих передачи данных более 350 терабайт в месяц.Обратите внимание, что нет платы за данные, передаваемые в Amazon S3 “регион” через COPY запрос, и не взимать плату за данные, передаваемые между Amazon EC2 и Amazon S3 в пределах одного региона или для данных, передаваемых между Amazon EC2 Северной Вирджинии региона иAmazon S3 американского стандарта региона.Чтобы избежать неожиданностей, всегда проверяйте последнюю ценовую политику на Amazon.

Введение в API Amazon S3 и CloudFusion

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

Прежде чем перейти к кодирующей части, давайте познакомимся с некоторыми визуальными инструментами, которые мы можем использовать для работы с Amazon S3.Различные визуальные и инструменты командной строки, которые помогут вам управлять вашим S3 счета и данные в нем.Поскольку визуальные инструменты легки в работе и удобным для пользователей, мы остановимся на них в этой статье.Я предпочитаю работать с консоли управления AWS для обеспечения безопасности reasons.

AWS управления Console

Management Console является частью AWS.Потому что это часть вашего счета AWS, без дополнительных настроек не требуется.После того как вы вошли в систему, вы имеете полный доступ ко всем вашим данным S3 и другие услуги AWS.Вы можете создавать новые ведра, создание объектов, применять политики безопасности, копии объектов различными ковшами, а также выполнять множество других functions.

S3Fox Organizer

Другим популярным инструментом является S3Fox Organizer.S3Fox Организатором является расширение Firefox, которое позволяет закачивать и скачивать файлы с вашего счета Amazon S3.Интерфейс, который открывается во вкладке браузера Firefox, очень похож на регулярные FTP клиент с двойными стеклами.Он отображает файлы на вашем компьютере слева, файлы на S3 справа, и сообщения о состоянии и информации в панели в bottom.

На Coding

Как отмечалось ранее, AWS является веб-сервис Amazon, инфраструктура, которая включает в себя различные облачные сервисы, в том числе S3, EC2, SimpleDB и CloudFront.Интеграция этих разнообразных услуг может быть непростой задачей.К счастью, мы имеем в нашем распоряжении библиотеки SDK в виде CloudFusion, которая позволяет нам работать с AWS без особых усилий.CloudFusion в настоящее время является официальным AWS SDK для PHP, и она охватывает большую часть облака продуктов от Amazon: S3, EC2, SimpleDB, CloudFront и многое другое.Для этой должности, я скачал архив версии CloudFusion SDK, но библиотека также доступна в виде PEAR пакет.Итак, вперед: скачать последнюю версию с официального сайта, и извлечь архив в рабочую директорию или к вашему PHP include путь.В извлеченный каталог, вы найдете config-sample.inc.php файл, который вы должны переименовать в config.inc.php.Вам нужно будет внести некоторые изменения в файл, чтобы отразить ваши AWS credentials.

В config файл, найдите следующие строки:

define('AWS_KEY', '');
define('AWS_SECRET_KEY', '');

Изменить линийотражать ваши учетные данные Amazon AWS в сфере безопасности.Вы можете найти учетных данных в Amazon AWS раздел счета, как показано below.

Получить ключи и заполнить их по следующим направлениям:

define('AWS_KEY', 'your_access_key_id');
define('AWS_SECRET_KEY', 'your_secret_access_key');

Вы можете получить ключ доступа и секретный ключ от вашего счета Amazon странице:

С учетом всех основных требований в месте, давайте создадим наш первый ковш на Amazon S3, с именем вашего выбора.Следующий пример показывает, ведра по имени com.smashingmagazine.images.(Конечно, к тому времени вы читаете это, это имя, возможно, уже должны быть приняты.) Выберите название структуры ведро, которое имеет отношение к вашей работе.Для каждого ведра, вы можете контролировать доступ к ведру, просмотр журналов доступа для ковша и его объектов, и установить географический регион, где Amazon S3 будет хранить ведро и его contents.

/* Include the CloudFusion SDK class */
require_once( ‘sdk-1.4.4/sdk.class.php');

/* Our bucket name */
$bucket = 'com.smashingmagazine.images’;

/* Initialize the class */
$s3 = new AmazonS3();

/* Create a new bucket */
$resource = $s3->create_bucket($bucket, AmazonS3::REGION_US_E1);

/* Check if the bucket was successfully created */
if ($resource->isOK()) {
    print("'${bucket}' bucket created\n");
} else {
    print("Error creating bucket '${bucket}'\n");
}

Давайте пройдемся по каждой строке в приведенном выше примере.Во-первых, мы включили в классе CloudFusion SDK в нашем файле.Вам нужно настроить пути в зависимости от того, где вы храните SDK files.

require_once( 'sdk-1.4.4/sdk.class.php');

Далее, мы экземпляр Amazon S3 класс:

$s3 = new AmazonS3();

На следующем шаге мы создали фактически ведро, в этом случае com.smashingmagazine.images.Опять же, название вашей ведро должно быть уникальным среди всех существующих имен ведро в Amazon S3.Один из способов добиться этого является префиксом слова с названием вашей компании или домена, как мы сделали здесь.Но это не гарантирует, что имя будет доступно.Ничто не мешает любому из создания ведро с именем com.microsoft.apps или com.ibm.images, так что выбирать wisely.

$bucket = 'com.smashingmagazine.images’;
$resource = $s3->create_bucket($bucket, AmazonS3::REGION_US_E1);

Повторюсь, имена блоков должны соответствовать следующим требованиям:

  • Может содержать строчные буквы, цифры, точки (.), подчеркивание (_) и дефис (-);
  • Должен начинаться с цифры или буквы;
  • Должна быть от 3 до 255 символов;
  • Не может быть отформатирован как IP-адрес (например, 265.255.5.4).

Кроме того, вы должны будете выбрать географическое положение для вашего ведра.Ковш может быть сохранен в один из нескольких регионов.Причины выбора одного региона над другим может быть для оптимизации задержки, чтобы свести к минимуму расходы, или для удовлетворения нормативных требований.Многие организации имеют политику конфиденциальности и правил о том, где хранить данные, поэтому учтите это при выборе места.Объекты никогда не покидают регион они хранятся в, если явно не переносить их в другой регион.То есть, если ваши данные хранятся на серверах, расположенных в США, он никогда не будет скопировано или переданы на серверы Amazon за пределами этого региона, вы должны будете сделать это вручную с помощью API или AWS инструментов.В приведенном выше примере, мы выбрали REGION_US_E1 region.

Вот допустимые значения для регионов:

  • AmazonS3::REGION_US_E1
  • AmazonS3::REGION_US_W1
  • AmazonS3::REGION_EU_W1
  • AmazonS3::REGION_APAC_SE1
  • AmazonS3::REGION_APAC_NE1

Наконец, мы проверили ли ковш был успешно создан:

if ($resource->isOK()) {
    print("'${bucket}' bucket created\n");
} else {
    print("Error creating bucket '${bucket}'\n");
}

Теперь давайте посмотрим, как получить список ведрами мы создали на S3.Так что, прежде чем продолжить, создайте еще несколько ведра по своему вкусу.Если у вас есть несколько ведер на вашем счету, это время к списку them.

/* Include the CloudFusion SDK class */
require_once ('sdk-1.4.4/sdk.class.php');

/* Our bucket name */
$bucket = 'com.smashingmagazine.images;

/* Initialize the class */
$s3 = new AmazonS3();

/* Get a list of buckets */
$buckets = $s3->get_bucket_list();

if($buckets)  {
    foreach ($buckets as $b) {
        echo $b . "\n";
    }
}

Только новые участие в коде выше, является следующая строка, которая получает массив имен блоков:

$buckets = $s3->get_bucket_list();

Наконец, мы выводим все names.__3 наши ведра ‘|

if($buckets)  {
    foreach ($buckets as $b) {
        echo $b . "\n";
    }
}

На этом мы завершаем обзор создания и распечатки ведра на наш счет S3.Мы также узнали о S3Fox Организатор и инструменты AWS консоль для работы с S3 account.

Загрузки данных на Amazon S3

Теперь, когда мы научились создавать и перечислить ведер в S3, давайте понять, как положить предметы в ведрах.Это немного сложным, и у нас есть несколько вариантов на выбор.Основным методом для этого является create_object.Метод имеет следующий формат:

create_object ( $bucket, $filename, [ $opt = null ] )

Первый параметр это имя ведро, в котором объект будет сохранен.Вторым параметром является имя, под которым файл будет храниться на S3.Используя только эти два параметра достаточно, чтобы создать пустой объект с заданным именем файла.Например, следующий код создает пустой объект с именем config-empty.inc В com.magazine.resources ведро:

$s3 = new AmazonS3();
$bucket = 'com.magazine.resources';
$response = $s3->create_object($bucket, 'config-empty.inc');

// Success?
var_dump($response->isOK());

После т …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.