- PVSM.RU - https://www.pvsm.ru -
Вторая и третья части сравнения сервисов хранилищ Windows Azure и Amazon. Остаётся последняя часть — сравнение Windows Azure Blob Storage и Google Cloud Storage.
В первой части этой статьи мы начали сравнение Windows Azure Blob Storage and Amazon Simple Storage Service (S3), посмотрели на базовые концепции и сравнили ценообразование и функциональность, касающуюся контейнеров блобов и корзин. Читать первую часть [1].
В этой части статьи мы сравним функциональность, касающуюся блобов и объектов, и закроем сравнение сервисов хранилищ обеих систем, сведя получившиеся данные в одну общую таблицу.
Первая часть цикла — Сравнение Windows Azure Table Storage и Amazon DynamoDB [2]
Вторая часть цикла — Сравнение Windows Azure Blob Storage и Amazon Simple Storage Service (S3) — ч. I [3]
Аббревиатуры: Windows Azure Blob Storage — WABS и Amazon Simple Storage Service — AS3.
Перед подробным обсуждением функций я считаю важным пояснить некоторые концепции, стоящие за блобами и объектами.
Блобы и объекты: Блобы WABS и объекты AS3 – это файлы в вашей облачной файловой системе, расположенные в контейнерах блобов и корзинах.
Комментарии:
Двумя наиболее важными функциями является загрузка и скачивание, поэтому я предлагаю обсудить сначала их, потом сравнить остальные функции.
Давайте поговорим о загрузке блобов и объектов в контейнеры и корзины. Есть два механизма загрузки – можно загружать блоб или объект полностью в рамках одного запроса или разделить их на куски (блоки или страницы WABS и части в AS3).
Если загружаемые данные имеют небольшой размер и у вас хорошая скорость подключения, вы можете полностью загрузить эти данные в одном запросе. В WABS для этого используется Put Blob [4]. В AS3 — Put Object [5].
Можно разделять большие данные, которые неэффективно загружать в одном запросе полностью. Обе системы позволяют разбивать данные на куски (блоки или страницы в WABS и части в AS3) и загружать постепенно. В WABS для блочных блобов необходимо использовать PutBlock [6] и Put Block List [7], для страничных — Put Page [8]. В AS3 для этого используются функции Initiate Multipart Upload [9], Upload Part [10] и Complete Multipart Upload [11] либо Abort Multipart Upload [12].
Есть много причин, по которым можно решить загружать данные кусками:
Теперь что касается того, как загрузить данные кусками в каждой из систем. Например, вы хотите загрузить кусками файл размером 100 Мб. Посмотрим, что нужно будет сделать при использовании каждой из платформ.
Допустим, каждый кусок имеет размер в 1 Мб (несмотря на то, что нет необходимости иметь куски одинакового размера) и вам необходимо совершить загрузку 100 кусков. Берем блочный блоб, каждый из блоков (кусков) которого имеет уникальный идентификатор (BlockId). Для его загрузки используем функцию Put Block [6]. BlockId – строка, зашифрованная Base64, максимальный размер которой ограничен 64 байтами. Все BlockId (100 в нашем случае) должны быть одной длины. При этом неважно, в каком порядке вы будете загружать блоки – вы можете загружать их и параллельно. После загрузки блока WABS кладет его куда-то в хранилище, и хранит 7 дней. После загрузки всех блоков вызываем Put Block List [7], подтверждая (commit) эти блоки. До момента вызова этой функции к блобу обратиться нельзя и, если вы не подтвердили блоки в течение 7 дней, они будут удалены системой. После вызова функции, основываясь на порядке списка BlockId, WABS воссоздаст блоб и пометит его как доступный. Нет разницы, какие значения будут иметь BlockId (все они могут быть GUID), но важно, в каком порядке вы отправите список BlockId при использовании Put Block List.
Ограничения:
Допустим, размер каждого куска – 5 Мб. Каждому куску назначается уникальный идентификатор (Part Number), идентифицирующий кусок и определяющий его позицию в исходном объекте. Этот номер может быть любым номером от 1 до 10000, но они должны быть отсортированы, т.е., если брать нашу ситуацию, то кусок 0-5Мб должен иметь номер 1, кусок 5-10 Мб – 2, и так далее. Но, когда вы начнете загружать эти части, сначала необходимо вызвать функцию Initiate Multipart Upload [9], которая скажет AS3, что начат процесс передачи объекта по кускам. Функция возвратит Upload Id. Далее для каждого куска надо вызвать функцию Upload Part [10] и передать Upload Id и номер куска, причем неважно, в каком порядке будут загружены куски (можно загружать параллельно). После загрузки всех кусков нужно вызвать функцию Complete Multipart Upload [11], подтвердив таким образом куски. Для отмены процесса можно вызвать Abort Multipart Upload [12].
Ограничения:
Для скачивания блобов и объектов существует два механизма – либо скачивание блоба или объекта целиком в одном запросе либо кусками.
В каждой системе есть только одна функция для скачивания — Get Blob [13] в WABS и Get Object [14] в AS3.
Если данные имеют небольшой размер и у вас хорошая скорость подключения, вы можете скачать объект полностью, используя Get Blob [13] в WABS и Get Object [14] в AS3.
Если объект имеет большой размер и вы не уверены, сможете ли скачать его за один раз, вы можете качать кусками, используя ту же функцию с добавлением заголовка Range и определив диапазон байт, необходимый для скачивания.
Процесс скачивания:
Функции, предоставляемые обеими системами, сведены в таблицу ниже.
| WABS | AS3 | |
| Put Blob/PUT Object [15] | Да [4] | Да [5] |
| POST Object [16] | Нет | Да [17] |
| Get Blob/GET Object [18] | Да [19] | Да [14] |
| GET Object torrent [20] | Нет | Да [21] |
| GET Object ACL [22] | Нет | Да [23] |
| PUT Object ACL [24] | Нет | Да [25] |
| Get Blob Properties/HEAD Object [26] | Да [27] | Да [28] |
| Set Blob Properties [29] | Да [27] | Нет |
| Get Blob Metadata/Head Object [30] | Да [31] | Да [28] |
| Set Blob Metadata [32] | Да [33] | Нет |
| Delete Blob/DELETE Object [34] | Да [35] | Да [36] |
| Delete Multiple Objects [37] | Нет | Да [38] |
| Copy Blob/Put Object – Copy [39] | Да [40] | Да [41] |
| Snapshot Blob [42] | Да [43] | Нет |
| Lease Blob [44] | Да [45] | Нет |
| Initiate Multipart Upload [46] | Нет | Да [9] |
| Put Block/Upload Part [47] | Да [6] | Да [10] |
| Put Block List/Complete Multipart Upload [48] | Да [7] | Да [11] |
| Get Block List/List Parts [49] | Да [50] | Да [51] |
| Abort Multipart Upload [52] | Нет | Да [11] |
| Upload Part – Copy [53] | Нет | Да [54] |
| Put Page [55] | Да [8] | Нет |
| Get Page Ranges [56] | Да [57] | Нет |
Обсудим поподробнее эти функции.
| WABS | AS3 | |
| Put Blob/PUT Object | Да [4] | Да [5] |
Функция добавляет блоб в контейнер блобов и объект в корзину.
Комментарии:
| WABS | AS3 | |
| POST Object | Нет | Да [17] |
Функция добавляет объект в указанную корзину, используя HTML-форму. POST является альтернативой PUT и позволяет реализовать загрузку объекта с помощью браузера. Параметры, переданные PUT с помощью HTTP-заголовков, передаются в случае POST как тело зашифрованного сообщения multipart/form-data.
| WABS | AS3 | |
| Get Blob/GET Object | Да [19] | Да [14] |
Функция позволяет скачать блоб из контейнера или корзины.
Комментарии:
| WABS | AS3 | |
| GET Object torrent | Нет | Да [21] |
AS3 позволяет использовать объекты с помощью протокола BitTorrent, который также может сократить количество передаваемого траффика. Подробнее про использование BitTorrent и AS3 — здесь [58].
Функцию можно вызывать только на объектах, имеющих размер менее 5 Гб.
| WABS | AS3 | |
| GET Object ACL | Нет | Да [23] |
В AS3 можно указать ACL на уровне отдельного объекта (в WABS ACL можно указать только на уровне контейнера блобов). Эта функция используется для получения информации об ACL, указанном для объекта
Интересным моментом является то, что если вы используете разные версии объекта, каждая версия будет иметь отдельный ACL. Для получения ACL конкретной версии объекта необходимо передать функции Version Id версии.
| WABS | AS3 | |
| PUT Object ACL | Нет | Да [25] |
Функция позволяет указать ACL для объекта. Как указывалось выше, каждая версия объекта имеет собственный ACL. Для указания ACL для конкретной версии объекта функции необходимо передать Version Id этой версии.
| WABS | AS3 | |
| Get Blob Properties/HEAD Object | Да [27] | Да [28] |
Функция используется для получения свойств блоба и метаданных объекта, но не возвращает содержимое блоба.
Комментарии:
| WABS | AS3 | |
| Set Blob Properties | Да [27] | Нет |
Функция определяет системные свойства блоба в WABS. Недоступна в AS3. При создании объекта можно указать только системные свойства.
Свойства, доступные для определения, включают в себя: Cache Control, Content Type, Content MD5, Content Encoding, Content Language. Обратите внимание, что вы не имеете права переопределять эти свойства для снапшота блоба.
WABS позволяет определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match).
| WABS | AS3 | |
| Get Blob Metadata/Head Object | Да [31] | Да [28] |
Функция возвращает определенные пользователем метаданные. Эту функцию можно использовать для получения свойств конкретной версии блоба или объекта. Для получения этой информации необходимо указать дату/время снапшота блоба в WABS и Version Id необходимой версии в AS3. Если эти параметры опущены, возвращается информация о текущей версии.
| WABS | AS3 | |
| Set Blob Metadata | Да [33] | Нет |
Функция используется для указания словаря метаданных в виде коллекции записей ключ-значение для блобов в WABS.
Комментарии:
| WABS | AS3 | |
| Delete Blob/DELETE Object | Да [35] | Да [36] |
Функция удаляет блоб или объект из хранилища.
Комментарии:
· WABS позволяет определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match).
| WABS | AS3 | |
| Delete Multiple Objects | Нет | Да [38] |
Эта функция позволяет удалить в одном HTTP-запросе несколько объектов из корзины – для этого необходимо знать ключи удаляемых объектов. Можно удалять также конкретные версии одного или нескольких объектов. В одном запросе можно удалить до 1000 объектов.
| WABS | AS3 | |
| Copy Blob/Put Object – Copy | Да [40] | Да [41] |
Функция копирует блоб куда-либо из исходного расположения.
Комментарии:
· Обе системы позволяют определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match). Эти условия можно определить как на исходнике, так и на конечной копии в WABS и на исходнике в AS3.
· WABS позволяет копировать объекты из контейнера в контейнер только в пределах одного аккаунта хранилища. В AS3 подобного ограничения нет. Если корзины, между которыми происходит обмен, принадлежат к одному аккаунту, объект будет скопирован. Однако, если вы создали объект, используя API для загрузки кусками, вы не сможете копировать объект из региона в регион.
· Обе системы позволяют вам скопировать существующие метаданные или указать метаданные для конечной копии.
· AS3 реализует эту функцию как комбинацию GET Object [14] и PUT Object [41].
Полезные советы:
| WABS | AS3 | |
| Snapshot Blob | Да [43] | Нет |
Функция создает read-only копию блоба – так реализуется версионирование WABS. Как я упоминал в предыдущих статьях, AS3 самостоятельно реализует версионирование. В WABS же версионирование реализовано на уровне конкретного блоба и версионирование этого блоба переходит в ответственность разработчика.
Комментарии:
· WABS позволяет определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match).
| WABS | AS3 | |
| Lease Blob | Да [45] | Нет |
Функция позволяет поставить одноминутный лок на блоб, чтобы его не могли модифицировать. Функция очень удобна в ситуации с множеством worker-ов, пытающихся совершить одну и ту же операцию, вы же хотите, чтобы только один из них всё-таки сделал изменение. Подробнее: http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases [60].
| WABS | AS3 | |
| Initiate Multipart Upload | Нет | Да [9] |
Функция используется для инициирования загрузки данных кусками.
| WABS | AS3 | |
| Put Block/Upload Part | Да [6] | Да [10] |
Функция используется для загрузки кусков (блоков в WABS и частей в AS3) данных.
| WABS | AS3 | |
| Put Block List/Complete Multipart Upload | Да [7] | Да [11] |
Функция используется для подтверждения блобов или объектов в соответствующем хранилище. Функцию можно вызывать после загрузки всех блоков или частей.
| WABS | AS3 | |
| Get Block List/List Parts | Да [50] | Да [51] |
Функция возвращает список загруженных блоков или частей.
Комментарии:
· WABS позволяет определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match).
| WABS | AS3 | |
| Abort Multipart Upload | Нет | Да [11] |
Функция используется для отмены выполняющегося процесса загрузки.
В таком виде, в каком реализована эту функциональность в WABS, она вам не нужна. В WABS вы не можете прервать процесс загрузки. Если вы начали загрузку блобов кусками и не вызвали Put Block List в течение 7 дней, загруженные блоки будут удалены.
| WABS | AS3 | |
| Upload Part – Copy | Нет | Да [54] |
Если объект, который вы пытаетесь скопировать, имеет размер, больший 5 Гб, вы не сможете использовать функцию Put Object – Copy. Вам придется копировать этот объект с помощью загрузки кускам, и эта функция предназначена как раз для этого. Различие между этой функцией и Upload Part состоит в том, что вместо передачи данных в теле запроса вы указываете объект-источник в формате source_bucket/source_object и диапазон байт, который нужно скопировать. Таким образом нужно поступить со всеми частями копируемого объекта. Перед вызовом этой функции вам необходимо инициировать загрузку кусками и получить Upload Id, который и необходимо передать функции. Для завершения копирования нужно вызвать “Complete Multipart Upload” либо “Abort Multipart Upload”.
| WABS | AS3 | |
| Put Page | Да [8] | Нет |
Когда вы создаете страничный блоб, используя Put Blob, вы только инициируете его создание, т.е. создаете пустой страничный блоб без содержания. С помощью этой функции можно вставить/обновить данные в страничный блоб, причем подтверждать данные не надо – после вызова этой функции они будут автоматически подтверждены.
Комментарии:
· WABS позволяет определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match).
| WABS | AS3 | |
| Get Page Ranges | Да [57] | Нет |
Важным различием между блочным и страничным блобом является ценообразование – вы платите за блочный блоб полностью, но в случае страничного блоба – только за занятые (ненулевые) страницы. Например, если вы создали блочный блоб на 2 Гб и страничный блоб на 2 Гб и оба из них незаполнены (содержат 0 байт), вы заплатите за 2 Гб блочного блоба, за страничный же блоб плата взиматься не будет. Потом вы запишите 1024 байта в страничный блоб, используя Put Page, и начнете платить за эти 1024 байта.
Эта функция возвращает отсортированный список ненулевых страниц.
У этой функции есть еще одно преимущество – если вы при скачивании страничного блоба вызовете эту функцию, вы будете гарантированно знать, где в блобе хранятся ваши данные, после чего вы сможете скачать не весь блоб, а только занятые страницы, с использованием заголовка Range в функции Get Blob.
Обе системы предоставляют похожий набор функций. В каждой системе есть свой набор функций, отсутствующий в другой системе, но в целом различия в функциональности не такие, как в случае контейнеров блобов и корзин.
Подробные статьи по сравнению Windows Azure Blob Storage и Amazon Simple Storage Service (S3 можно почитать здесь [1] и здесь [61]. В этой заметке я подведу итоги.
Аббревиатуры: Windows Azure Blob Storage - WABS иAmazon Simple Storage Service — AS3.
В таблицу сведены итоги сравнения функций WABS и AS3.
| WABS | AS3 | |
| Текущая версия сервиса | 2011-08-18 [62] | 2006-03-01 [63] |
| Ограничение хранилища | До 100Тб | Неограничено |
| Облачная файловая система | Да | Да |
| Возможность пересылки дисков для передачи огромных объемов данных | Нет | Да |
| Подерживаемые протоколы | HTTP / HTTPS | HTTP / HTTPS / BitTorrent |
| Возможность выставлять счет клиентам за потребленные ими данные | Нет | Да |
| Поддержка шифрования на стороне сервера | Нет | Да |
| Поддержка ограниченной избыточности | Нет | Да |
| Поддерживаемый уровень иерархии | 2 | 2 |
| Контейнеры блобов и корзины | ||
| Создание контейнеров блобов и корзин | Да [64] | Да [65] |
| Количество контейнеров блобов и корзин | Неограничено | Неограничено |
| Минимальная/максимальная длина названия корзины или контейнера блобов | 3/63 | 3/63 |
| Чувствительность к регистру в именах контейнеров блобов и корзин | Нижний регистр | Нижний регистр |
| Разрешенные в именах контейнеров блобов и корзин символы | Alphanumeric, дефис (-) | Alphanumeric, дефис (-), точка (.) |
| Поддержка виртуального | Нет | Да |
| Поддержка |
Да | Да |
| Возможность определения ACL в момент создания | Да | Да |
| ACL по умолчанию | Private | Private |
| Указание собственных метаданных | Да | Нет |
| Получение списка контейнеров блобов и корзин | Да [67] | Да [68] |
| Максимальное количество возвращенных одним вызовом функции контейнеров блобов или корзин | 5000 | Не указано |
| Возвращение части списка контейнеров блобов и корзин с использованием фильтрации по префиксу | Да | Да |
| Удаление контейнеров блобов и корзин | Да [69] | Да [70] |
| Контейнер блобов или корзина должна быть пустой перед удалением | Нет | Да |
| Получение списка блобов или объектов | Да [71] | Да [72] |
| Максимальное количество блобов или объектов, возвращенное одним вызовом функции | 5000 | 1000 |
| Возможность указания верхнего лимита количества возвращаемых блобов или объектов в одном вызове функции | Да | Да |
| Поддержка разделителя для создания иллюзии иерархии в виде папок | Да | Да |
| Фильтрация возвращаемого списка блобов или объектов по префиксу | Да | Да |
| Получение списка версионированных блобов или объектов | Да [71] | Да [73] |
| Получение списка неподтвержденных блобов или объектов | Да [71] | Да [74] |
| Логирование запросов к блобам или объектам | Да [75] | Да [76] |
| Логирование запросов к конкретным блобам или объектам | Нет | Да |
| Получение конфигурации логирования запросов к блобам или объектам | Да [77] | Да [78] |
| Определение ACL на контейнер блобов или корзину | Да [79] | Да [80] |
| Возможные значения ACL | Container, Blob, Private | READ, WRITE, READ_ACP, WRITE_ACP, FULL_CONTROL |
| Определение различных ACL для различных пользователей | Нет | Да |
| Определение собственных метаданных для контейнера блобов или корзины | Да [81] | Нет |
| Получение определенных пользователем метаданных для контейнера блобов или корзины | Да [82] | Нет |
| Версионирование объектов | Да | Да |
| Версионирование управляется системой | Нет | Да |
| Настройка версионирования для контейнеров блобов или корзин | Нет | Да [83] |
| Получение конфигурации версионирования контейнера блобов или корзины | Нет | Да [84] |
| Автоматическое удаление содержимого контейнера блобов или корзины по истечении определенного срока | Нет | Да |
| Настройка автоматического удаления содержимого контейнера блобов или корзины по истечении определенного срока | Нет | Да [85] |
| Получение настроек автоматического удаления содержимого контейнера блобов или корзины по истечении определенного срока | Нет | Да [86] |
| Удаление настроек автоматического удаления содержимого контейнера блобов или корзины по истечении определенного срока | Нет | Да [87] |
| Определение политик доступа на контейнер блобов или корзины для предотвращения несанкционированного доступа | Нет | Да [88] |
| Получение политик доступа на контейнер блобов или корзины для предотвращения несанкционированного доступа | Нет | Да [88] |
| Удаление политик доступа на контейнер блобов или корзины для предотвращения несанкционированного доступа | Нет | Да [89] |
| Получение уведомлений о произошедшем с контейнером блобов или корзиной событии | Нет | Да |
| Настройка уведомлений о произошедшем с контейнером блобов или корзиной событии | Нет | Да [90] |
| Получение уведомлений о произошедшем с контейнером блобов или корзиной событии | Нет | Да [91] |
| Может ли другой пользователь платить за скачивание из контейнера блобов или корзины | Нет | Да |
| Определение пользователя, который будет платить за скачивание из контейнера блобов или корзины | Нет | Да [92] |
| Получение конфигурации пользователя, который будет платить за скачивание из контейнера блобов или корзины | Нет | Да [93] |
| Размещение статического вебсайта в контейнере блобов или корзине с поддержкой страниц по умолчанию и ошибок | Нет | Да |
| Настройка размещения статического вебсайта в контейнере блобов или корзине с поддержкой страниц по умолчанию и ошибок | Нет | Да [94] |
| Получение настройки размещения статического вебсайта в контейнере блобов или корзине с поддержкой страниц по умолчанию и ошибок | Нет | Да [95] |
| Удаление настройки размещения статического вебсайта в контейнере блобов или корзине с поддержкой страниц по умолчанию и ошибок | Нет | Да [96] |
| Блобы и объекты | ||
| Максимальный размер блоба или объекта | 200 Гб / 1 Тб | 5 Тб |
| Типы блобов или объектов | Блочный, страничный | - |
| Загрузка блобов или объектов | Да [4] | Да [5] |
| Максимальный размер блоба или объекта, который можно загрузить без разделения его на куски | 64 Мб | Ограничения отсутствуют |
| Загрузка блобов или объектов кусками | Да [6] | Да [10] |
| Максимальное количество кусков для загрузки | 50000 | 10000 |
| Минимальный размер куска | Нет | 5 Мб |
| Определение метаданных в момент загрузки | Да | Да |
| Определение ACL в момент загрузки | N/A | Да |
| Определение, нужно ли использовать ограниченную избыточность, в момент загрузки | N/A | Да |
| Загрузка с условием | Да | Нет |
| Загрузка блобов или объектов с использованием HTML-форм и POST | Нет | Да [17] |
| Скачивание блобов или объектов | Да [19] | Да [14] |
| Скачивание блобов или объектов кусками | Да | Да |
| Переопределение заголовков ответа при скачивании блобов или объектов | Нет | Да |
| Скачивание и распространение блобов или объектов через Torrent | Нет | Да [21] |
| Получение ACL для блобов или объектов | Нет | Да [23] |
| Определение ACL для блобов или объектов | Нет | Да [25] |
| Получение свойств блобов или объектов | Да [27] | Да [28] |
| Определение свойств блобов или объектов | Да [27] | Нет |
| Получение определенных пользоваетелем метаданных для блобов или объектов | Да [31] | Да [28] |
| Определение собственных метаданных для блобов или объектов | Да [33] | Нет |
| Удаление блобов или объектов | Да [35] | Да [36] |
| Поддержка Multi Factor Authentication (MFA) delete | Нет | Да |
| Удаление по условию | Да | Нет |
| Удаление нескольких блобов или объектов одним запросом | Нет | Да [38] |
| Копирование блобов или объектов | Да [40] | Да [41] |
| Копирование по условию | Да | Да |
| Создание read-only снапшота блоба или объектов | Да [43] | Нет |
| Получение эксклюзивного лока (lock) на блобе или объекте | Да [45] | Нет |
Примечание от переводчика
Несмотря на молодость (по отношению к конкуренту) платформы Windows Azure, Microsoft постарались на славу — между двумя платформами сохраняется относительное равенство в функциональности, и это не может не радовать. Мне очень интересно наблюдать за развитием обеих платформ, и я думаю, что дальше будет ещё интереснее. Кстати, 7 июня Microsoft выкатят глобальные обновления — не пропустите, будет очень классно, как знакомый с нововведениями вам говорю! Мне кажется, что соревнование облачных платформ набирает новый виток, и дальше всё будет зависеть от того, насколько верный вектор развития будет выбран Amazon и Microsoft. Поживем — увидим. Следующий перевод будет посвящён сравнению Windows Azure Blob Services и Google Cloud Service.
Автор: ahriman
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/microsoft/8828
Ссылки в тексте:
[1] Читать первую часть: http://gauravmantri.com/2012/05/09/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-i/
[2] Первая часть цикла — Сравнение Windows Azure Table Storage и Amazon DynamoDB : http://habrahabr.ru/post/144762/
[3] Вторая часть цикла — Сравнение Windows Azure Blob Storage и Amazon Simple Storage Service (S3) — ч. I: http://habrahabr.ru/post/145063/
[4] Put Blob: http://msdn.microsoft.com/en-us/library/windowsazure/dd179451
[5] Put Object: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html
[6] PutBlock: http://msdn.microsoft.com/en-us/library/windowsazure/dd135726
[7] Put Block List: http://msdn.microsoft.com/en-us/library/windowsazure/dd179467
[8] Put Page: http://msdn.microsoft.com/en-us/library/windowsazure/ee691975
[9] Initiate Multipart Upload: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html
[10] Upload Part: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPart.html
[11] Complete Multipart Upload: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadComplete.html
[12] Abort Multipart Upload: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadAbort.html
[13] Get Blob: http://msdn.microsoft.com/en-us/library/windowsazure/dd179440.aspx
[14] Get Object: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGET.html
[15] Put Blob/PUT Object: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f001
[16] POST Object: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f002
[17] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOST.html
[18] Get Blob/GET Object: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f003
[19] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179440
[20] GET Object torrent: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f004
[21] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETtorrent.html
[22] GET Object ACL: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f005
[23] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectGETacl.html
[24] PUT Object ACL: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f006
[25] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html
[26] Get Blob Properties/HEAD Object: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f007
[27] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179394
[28] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectHEAD.html
[29] Set Blob Properties: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f008
[30] Get Blob Metadata/Head Object: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f009
[31] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179350
[32] Set Blob Metadata: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f010
[33] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179414
[34] Delete Blob/DELETE Object: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f011
[35] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179413
[36] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html
[37] Delete Multiple Objects: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f012
[38] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html
[39] Copy Blob/Put Object – Copy: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f013
[40] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd894037
[41] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html
[42] Snapshot Blob: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f014
[43] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691971
[44] Lease Blob: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f015
[45] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691972
[46] Initiate Multipart Upload: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f016
[47] Put Block/Upload Part: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f017
[48] Put Block List/Complete Multipart Upload: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f018
[49] Get Block List/List Parts: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f019
[50] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179400
[51] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html
[52] Abort Multipart Upload: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f020
[53] Upload Part – Copy: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f021
[54] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html
[55] Put Page: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f022
[56] Get Page Ranges: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f023
[57] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691973
[58] здесь: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/dev/S3Torrent.html?r=136
[59] здесь: http://docs.amazonwebservices.com/AmazonS3/latest/dev/MultiFactorAuthenticationDelete.html
[60] http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases: http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases
[61] здесь: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/
[62] 2011-08-18: http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx
[63] 2006-03-01: http://docs.amazonwebservices.com/AmazonS3/latest/API/Welcome.html?r=4391
[64] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179468.aspx
[65] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html
[66] хостинга: https://www.reg.ru/?rlink=reflink-717
[67] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx
[68] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html
[69] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx
[70] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html
[71] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd135734.aspx
[72] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGET.html
[73] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETVersion.html
[74] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html
[75] Да: http://msdn.microsoft.com/en-us/library/windowsazure/hh452235.aspx
[76] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlogging.html
[77] Да: http://msdn.microsoft.com/en-us/library/windowsazure/hh452239.aspx
[78] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html
[79] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179391.aspx
[80] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html
[81] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179362.aspx
[82] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691976.aspx
[83] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html
[84] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html
[85] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html
[86] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html
[87] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html
[88] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html
[89] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html
[90] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTnotification.html
[91] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html
[92] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentPUT.html
[93] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html
[94] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html
[95] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html
[96] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketHEAD.html
Нажмите здесь для печати.