- PVSM.RU - https://www.pvsm.ru -
Приветствую любителей облачных вычислений.
Предлагаю посмотреть на сравнение сервисов Windows Azure Blob Storage и Google Cloud Storage (при этом автор не забывает упомянуть и про Amazon AS3).
Я подумал, что неплохо было бы написать статью по сравнению хранилища Google App Engine и Windows Azure. В этой статье мы сравним Windows Azure Blob Storage [1] и Google Cloud Storage [2].
Аббревиатуры: Windows Azure Blob Storage - WABS и Google Cloud Storage – GCS, Amazon S3 – AS3.
Концептуально WABS и GCS предоставляют аналогичную функциональность – проще говоря, обе системы представляют из себя облачные файловые системы, позволяющие хранить большие объемы неструктурированных данных (обычно в виде файлов).
Обе системы предоставляют REST API для работы с файлами и папками и другими библиотеками высокоуровневых языков, которые обычно являются врапперами REST API. Каждый релиз API имеет свою версию, в WABS она имеет значение даты, в GCS – цифры. На момент написания статьи версия WABS была равна 2011-08-18 [3], GCS — version 2.0 [4].
Похожая функциональность в двух системах:
Перед тем, как мы поговорим подробнее об этих двух сервисах, я считаю важным пояснить некоторые концепции. Если вы знакомы с базовыми концепциями WABS и GCS, можете пропустить этот раздел.
Контейнеры блобов и корзины: Если эти сервисы – файловые системы в облаке, рассматривайте контейнер блобов WABS и корзину GCS как папку или директорию. В аккаунте хранилища WABS или аккаунте GCS вы можете иметь ноль и более контейнеров блобов и корзин, которые могут содержать блобы или объекты соответственно.
Комментарии:
Блобы и объекты: Блобы WABS и объекты GCS – это файлы в вашей облачной файловой системе, расположенные в контейнерах блобов и корзинах.
Комментарии:
Двумя наиболее важными функциями является загрузка и скачивание, давайте обсудим сначала их, потом сравним остальные функции.
Давайте поговорим о загрузке блобов и объектов в контейнеры и корзины. Есть два механизма загрузки – можно загружать блоб или объект полностью в рамках одного запроса или разделить их на куски (блоки или страницы WABS, в GCS они не имеют какого-то специального имени).
Если загружаемые данные имеют небольшой размер и у вас хорошая скорость подключения, вы можете полностью загрузить эти данные в одном запросе. В WABS для этого используется Put Blob [7]. В GCS- PUT Object [8] или POSTObject [9].
Можно разделять большие данные, которые неэффективно загружать в одном запросе полностью. Обе системы позволяют разбивать данные на куски (блоки или страницы в WABS, в GCS они не имеют какого-то специального имени) и загружать постепенно. В WABS для блочных блобов необходимо использовать PutBlock [10] и Put Block List [11], для страничных — Put Page [12]. В GCS для этого используются функции POST Object [9] и PutObject [13].
Есть много причин, по которым можно решить, загружать ли данные кусками:
Давайте посмотрим, как загрузить данные кусками в каждой из систем. Например, вы хотите загрузить кусками файл размером 100 Мб.
Допустим, каждый кусок имеет размер в 1 Мб (несмотря на то, что нет необходимости иметь куски одинакового размера) – вам необходимо совершить загрузку 100 кусков. Берем блочный блоб, каждый из блоков (кусков) которого имеет уникальный идентификатор (BlockId). Для его загрузки используем функцию PutBlock [10]. BlockId – строка, зашифрованная Base64, максимальный размер которой ограничен 64 байтами. Все BlockId (100 в нашем случае) должны быть одной длины. При этом неважно, в каком порядке вы будете загружать блоки – вы можете загружать их и параллельно. После загрузки блока WABS кладет его куда-то в хранилище, и хранит 7 дней. После загрузки всех блоков вызываем Put Block List [11], подтверждая (commit) эти блоки. До момента вызова этой функции к блобу обратиться нельзя и, если вы не подтвердили блоки в течение 7 дней, они будут удалены системой. После вызова функции, основываясь на порядке списка BlockId, WABS воссоздаст блоб и пометит его как доступный. Нет разницы, какие значения будут иметь BlockId (все они могут быть GUID), но важно, в каком порядке вы отправите список BlockId при использовании Put Block List.
Ограничения:
В случае GCS загрузка большого файла кусками называется “Resumable Uploads [14]”. Сначала необходимо сообщить GCS, что вы начали процесс загрузки, вызовом POST Object [9]. Обычно эта функция используется для загрузки файла с помощью HTML-форм но в этом случае вы не определяете файл. Вы можете определить заголовки запроса, с помощью которых сообщить GCS, что вы начали процесс загрузки. После окончания загрузки GCS возвратит ответ, содержащий Upload Id, уникально идентифицирующий процесс загрузки. Этот Id нужно сохранить, так как он понадобится при загрузке кусков. Далее необходимо попробовать загрузить файл, используя функциюPut Object [13] и передав ей Upload Id и содержимое объекта. Если всё получится, GCS ответит HTTP-кодом 200 Ok, но, если операция не будет выполнена, вам придется запросить у GCS количество загруженных байт. GCS возвратит HTTP-код 308 Resume Incomplete. Далее можно будет продолжить загрузку данных с использованием Put Object.
Мысли:
Давайте посмотрим, как можно скачивать блобы и объекты. Для этого есть два механизма – либо скачивать целый блоб или объект в одном запросе, либо кусками.
В каждой системе есть только одна функция для скачивания — Get Blob [15] в WABS и GET Object [16] в GCS.
Если объект имеет большой размер и вы не уверены, сможете ли скачать его за один раз, вы можете качать кусками, используя ту же функцию с добавлением заголовка Range и определив диапазон байт, необходимый для скачивания.
Процесс скачивания:
У всех трех систем есть общие моменты, например:
Когда я впервые читал о GCS, я обнаружил, что есть много общего у GCS и AS3, например:
Когда мы начали обсуждать основную функциональность GCS, могло так показаться, что GCS предоставляет меньшую функциональность, нежели WABS и AS3, однако в GCS есть функции, которых нет ни в одной другой платформе. Например:
При использовании обеих систем отсутствуют «капитальные» затраты. Модель ценообразования относительно проста и основана на потреблении. В обеих системах счет выставляется на основе использования и он может состоять из трех компонентов:
Доступна также специальная модель ценообразования и обе системы предоставляют различные пакеты оплаты. Подробнее про ценообразование — https://www.windowsazure.com/en-us/pricing/details/ [27] для WABS и https://developers.google.com/storage/docs/pricingandterms [28] для GCS.
В таблицу сведены функции, предоставляемые WABS и GCS. В нем содержатся только поддерживаемые обеими системами функции.
| WABS | GCS | |
| Create Container/PUT Bucket [29] | Да [30] | Да [31] |
| List Containers/GET Service [32] | Да [33] | Да [34] |
| Delete Container/DELETE Bucket [35] | Да [36] | Да [37] |
| List Blobs/GET Bucket (List Objects) [38] | Да [39] | Да [40] |
| Set Container ACL/PUT Bucket (ACL or CORS) [41] | Да [42] | Да [31] |
| Get Container ACL/Get Bucket (ACL or CORS) [43] | Да [42] | Да [40] |
| Put Blob/PUT Object [44] | Да [7] | Да [8] |
| POST Object [45] | Нет | Да [46] |
| Get Blob/GET Object [47] | Да [48] | Да [16] |
| Delete Blob/DELETE Object [49] | Да [50] | Да [51] |
| Copy Blob/PUT Object [52] | Да [53] | Да [54] |
| Get Blob Properties/HEAD Object [55] | Да [56] | Да [57] |
| Get Blob Metadata/HEAD Object [58] | Да [56] | Да [57] |
В следующей таблице приведен список функций, поддерживаемых только в WABS.
| WABS | GCS | |
| Set Blob Service Properties [59] | Да [60] | Нет |
| Get Blob Service Properties [61] | Да [62] | Нет |
| Set Container Metadata [63] | Да [64] | Нет |
| Get Container Metadata [65] | Да [66] | Нет |
| Set Blob Properties [67] | Да [56] | Нет |
| Set Blob Metadata [68] | Да [69] | Нет |
| Snapshot Blob [70] | Да [71] | Нет |
| Lease Blob [72] | Да [73] | Нет |
| Put Block [74] | Да [10] | Нет |
| Put Block List [75] | Да [11] | Нет |
| Get Block List/List Parts [76] | Да [77] | Нет |
| Put Page [78] | Да [12] | Нет |
| Get Page Ranges [79] | Да [80] | Нет |
Рассмотрим подробнее эти функции.
| WABS | GCS | |
| Create Container/PUT Bucket | Да [81] | Да [31] |
Эта функция создает новый контейнер блобов или корзину.
Важным моментом, который необходимо помнить, является то, что контейнеры блобов ограничиваются аккаунтом хранилища, тогда как корзины GCS ограничиваются проектом GCS. Когда вы создаете аккаунт хранилища WABS, вы определяете его расположение (датацентр), и ваши контейнеры блобов располагаются в конкретном датацентре в конкретной географической локации. Когда вы создаете корзину в GCS, вы определяете регион, в котором будет создана эта корзина, таким образом, можно распределить корзины по всем датацентрам в GCS, если есть такая необходимость. Для того, чтобы сделать то же самое в WABS, вам нужно создать по аккаунту хранилища в каждом датацентре, в котором вы хотите разместить контейнеры.
Есть несколько правил именования контейнеров блобов и корзин, они сведены в таблицу ниже.
| WABS | GCS | |
| Минимальная/максимальная длина название | 3/63 | 3/63 |
| Чувствительность к регистру | Нижний регистр | Нижний регистр |
| Разрешенные символы | Alphanumeric и дефис (-) | Alphanumeric, дефис (-) и точка (.) |
Ещё правила по именованию:
Примечания:
| WABS | GCS | |
| List Containers/GET Service | Да [33] | Да [34] |
Функция возвращает список всех контейнеров блобов или корзин, которые принадлежат аутентифицировавшемуся владельцу в GCS.
Комментарии:
| WABS | GCS | |
| Delete Container/DELETE Bucket | Да [36] | Да [37] |
Функция удаляет контейнер блобов или корзину.
Комментарии:
| WABS | GCS | |
| List Blobs/GET Bucket (List Objects) | Да [39] | Да [40] |
Функция используется для получения списка блобов и объектов в контейнере или корзине. Функции в системах выполняют одно и то же, учитывая:
Различия:
| WABS | GCS | |
| Set Container ACL/PUT Bucket (ACL or CORS) | Да [42] | Да [31] |
Функция используется для указания ACL для контейнеров или корзин, и в WABS можно также указать одну или более политик доступа. В GCS можно также сконфигурировать CORS (но нельзя конфигурировать CORS и ACL в одном запросе).
Для контейнера блобов значения ACL могут быть:
Для корзин значения ACL могут быть равны:
Удобным в GCS является то, что можно дать пользователям различные наборы разрешений, например, user1 может иметь READ ACL, user2 – WRITE ACL, в WABS такой гибкости нет, разрешения ставятся только на контейнер блобов.
Удобным в WABS является то, что, помимо ACL можно задавать до 5 политик доступа к контейнеру, которые определяют временной набор разрешений к этому контейнеру. Например, можно создать политику доступа с разрешением на запись на контейнер блобов, которая будет действовать только день. Использование политик позволяет генерировать специальный URL с сигнатурой и выдавать его пользователям (гибкая функциональность Shared Access Signatures). Сигнатуры позволяют выдать права на доступ на контейнеры и блобы на более детальном уровне на определенное время.
| WABS | GCS | |
| Get Container ACL/GET Bucket (ACL or CORS) | Да [42] | Да [40] |
Функция используется для получения ACL для контейнера блобов или корзины, и в WABS эта функция также возвращает политики доступа, определенные для контейнера.
Для получения ACL корзины нужно вызвать GET Bucket [40] со строковым параметром “acl”, для получения CORS же – со строковым параметром “cors”. Если не указан ни тот ни другой, возвращается список объектов в корзине.
| WABS | GCS | |
| Put Blob/PUT Object | Да [7] | Да [8] |
Функция добавляет блоб в контейнер блобов и объект в корзину. Эту функцию можно использовать для указания ACL существующему объекту в GCS или копирования объекта из одной корзины в другую.
Комментарии:
| WABS | GCS | |
| POST Object | Нет | Да [46] |
Функция добавляет объект в указанную корзину, используя HTML-форму. POST является альтернативой PUT и позволяет реализовать загрузку объекта браузером. Параметры, переданные PUT с помощью HTTP-заголовков, передаются с POST как тело зашифрованного сообщения multipart/form-data.
| WABS | GCS | |
| Get Blob/GET Object | Да [48] | Да [16] |
Функция позволяет скачать блоб из контейнера или корзины.
Комментарии:
| WABS | GCS | |
| Delete Blob/DELETE Object | Да [50] | Да [51] |
Функция удаляет блоб или объект из хранилища.
Комментарии:
· WABS позволяет определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match).
| WABS | GCS | |
| Copy Blob/Put Object – Copy | Да [53] | Да [8] |
Функция копирует блоб или объект куда-либо из исходного расположения.
Комментарии:
· Обе системы позволяют определить предусловия, которые должны быть удовлетворены для успешного завершения этой функции (If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match). Эти условия можно определить как на исходнике, так и на конечной копии в WABS и на исходнике в GCS.
· WABS позволяет копировать объекты из контейнера в контейнер только в пределах одного аккаунта хранилища. В GCS подобного ограничения нет. Если корзины, между которыми происходит обмен, принадлежат к одному проекту, объект будет скопирован. Однако, если вы создали объект, используя API для загрузки кусками, вы не сможете копировать объект из региона в регион.
· Обе системы позволяют вам скопировать существующие метаданные или указать метаданные для конечной копии.
Советы:
| WABS | GCS | |
| Get Blob Properties/HEAD Object | Да [56] | Да [57] |
Функция используется для получения свойств блоба и метаданных объекта, но не возвращает содержимое блоба или объекта.
Комментарии:
| WABS | GCS | |
| Get Blob Metadata/HEAD Object | Да [83] | Да [57] |
Функция возвращает определенные пользователем метаданные для блоба или объекта. Эту функцию можно использовать для получения свойств конкретной версии блоба или объекта. Для получения этой информации необходимо указать дату/время снапшота блоба в WABS.
Как мы увидели из статьи, обе системы предоставляют похожий набор функций, однако некоторые функции наличествуют в одной системе, но отсутствуют в другой. Несмотря на это, нельзя говорить о большом различии в функциональности.
Примечание от переводчика
Читая этот обзор, не покидало ощущение, что Google разумно решили не строить лисапедов, а пойти по проторенной успешной дороге Amazon — об этом говорит практически полная идентичность некоторых параметров. Учитывая, что Amazon запустили свой сервис в 2006, а Google в 2010, вполне может быть, что так оно и было. Однако у Google есть действительно замечательные функции, которых недостает в остальных сервисах — тот же CORS, например. В целом же можно даже попробовать заявить, что темпы развития сервисов Google и Microsoft во временном контексте выше темпов Amazon.
Спасибо за внимание, как только будут разработаны очередные материалы, я обязательно их переведу и предоставлю вашему вниманию.
Автор: ahriman
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/microsoft/8933
Ссылки в тексте:
[1] Windows Azure Blob Storage: http://msdn.microsoft.com/ru-ru/library/windowsazure/dd135733.aspx
[2] Google Cloud Storage: https://developers.google.com/storage/
[3] 2011-08-18: http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx
[4] version 2.0: https://developers.google.com/storage/docs/developer-guide
[5] ACLs и Query String Authentication: https://developers.google.com/storage/docs/accesscontrol
[6] ACLs и Shared Access Signatures: http://msdn.microsoft.com/en-us/library/windowsazure/ee393341.aspx
[7] Put Blob: http://msdn.microsoft.com/en-us/library/windowsazure/dd179451
[8] PUT Object: https://developers.google.com/storage/docs/reference-methods#putobject
[9] POSTObject: https://developers.google.com/storage/docs/reference-methods.html#postobject
[10] PutBlock: http://msdn.microsoft.com/en-us/library/windowsazure/dd135726
[11] Put Block List: http://msdn.microsoft.com/en-us/library/windowsazure/dd179467
[12] Put Page: http://msdn.microsoft.com/en-us/library/windowsazure/ee691975
[13] PutObject: https://developers.google.com/storage/docs/reference-methods.html#putobject
[14] Resumable Uploads: https://developers.google.com/storage/docs/developer-guide#resumable
[15] Get Blob: http://msdn.microsoft.com/en-us/library/windowsazure/dd179440.aspx
[16] GET Object: https://developers.google.com/storage/docs/reference-methods#getobject
[17] хостинга: https://www.reg.ru/?rlink=reflink-717
[18] http://mybucket.s3.amazon.com/myobject: http://mybucket.s3.amazon.com/myobject
[19] http://s3-eu-west-1.amazonaws.com/mybucket/myobject: http://s3-eu-west-1.amazonaws.com/mybucket/myobject
[20] http://myaccount.blob.core.windows.net/myblobcontainer/myblob: http://myaccount.blob.core.windows.net/myblobcontainer/myblob
[21] https://developers.google.com/storage/docs/authentication#oauth: https://developers.google.com/storage/docs/authentication#oauth
[22] https://developers.google.com/storage/docs/authentication#cookieauth: https://developers.google.com/storage/docs/authentication#cookieauth
[23] CORS: http://www.w3.org/TR/cors/
[24] W3C: http://www.w3.org/
[25] same-origin policy: http://www.w3.org/Security/wiki/Same_Origin_Policy
[26] https://developers.google.com/storage/docs/cross-origin: https://developers.google.com/storage/docs/cross-origin
[27] https://www.windowsazure.com/en-us/pricing/details/: https://www.windowsazure.com/en-us/pricing/details/
[28] https://developers.google.com/storage/docs/pricingandterms: https://developers.google.com/storage/docs/pricingandterms
[29] Create Container/PUT Bucket: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f001
[30] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179468.aspx
[31] Да: https://developers.google.com/storage/docs/reference-methods#putbucket
[32] List Containers/GET Service: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f002
[33] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx
[34] Да: https://developers.google.com/storage/docs/reference-methods#getservice
[35] Delete Container/DELETE Bucket: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f003
[36] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx
[37] Да: https://developers.google.com/storage/docs/reference-methods#deletebucket
[38] List Blobs/GET Bucket (List Objects): http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f004
[39] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd135734.aspx
[40] Да: https://developers.google.com/storage/docs/reference-methods#getbucket
[41] Set Container ACL/PUT Bucket (ACL or CORS): http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f005
[42] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179391.aspx
[43] Get Container ACL/Get Bucket (ACL or CORS): http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f006
[44] Put Blob/PUT Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f007
[45] POST Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f008
[46] Да: https://developers.google.com/storage/docs/reference-methods#postobject
[47] Get Blob/GET Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f009
[48] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179440
[49] Delete Blob/DELETE Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f010
[50] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179413
[51] Да: https://developers.google.com/storage/docs/reference-methods#deleteobject
[52] Copy Blob/PUT Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f011
[53] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd894037
[54] Да: http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html
[55] Get Blob Properties/HEAD Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f012
[56] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179394
[57] Да: https://developers.google.com/storage/docs/reference-methods#headobject
[58] Get Blob Metadata/HEAD Object: http://gauravmantri.com/2012/06/01/comparing-windows-azure-blob-storage-and-google-cloud-storage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+gmantri+%28GauravMantri.com%29&utm_content=Google+Reader#f013
[59] Set Blob Service Properties: http://gauravmantri.com/2012/05/09/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-i/#f005
[60] Да: http://msdn.microsoft.com/en-us/library/windowsazure/hh452235.aspx
[61] Get Blob Service Properties: http://gauravmantri.com/2012/05/09/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-i/#f006
[62] Да: http://msdn.microsoft.com/en-us/library/windowsazure/hh452239.aspx
[63] Set Container Metadata: http://gauravmantri.com/2012/05/09/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-i/#f011
[64] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179362.aspx
[65] Get Container Metadata: http://gauravmantri.com/2012/05/09/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-i/#f012
[66] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691976.aspx
[67] Set Blob Properties: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f008
[68] Set Blob Metadata: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f010
[69] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179414
[70] Snapshot Blob: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f014
[71] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691971
[72] Lease Blob: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f015
[73] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691972
[74] Put Block: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f017
[75] Put Block List: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f018
[76] Get Block List/List Parts: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f019
[77] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179400
[78] Put Page: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f022
[79] Get Page Ranges: http://gauravmantri.com/2012/05/11/comparing-windows-azure-blob-storage-and-amazon-simple-storage-service-s3part-ii/#f023
[80] Да: http://msdn.microsoft.com/en-us/library/windowsazure/ee691973
[81] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179469.aspx
[82] https://developers.google.com/storage/docs/accesscontrol#default: https://developers.google.com/storage/docs/accesscontrol#default
[83] Да: http://msdn.microsoft.com/en-us/library/windowsazure/dd179350
Нажмите здесь для печати.