Доступ к хранилищу BLOB-объектов Azure через REST с помощью Coldfusion на примере C#

Я наткнулся на кирпичную стену, пытаясь научиться составлять список всех контейнеров и больших двоичных объектов. Как ни странно, я не видел ни одного примера Coldfusion, который делал бы это.

Я пытался следовать проекту С#, но я застрял в момент создания подписи. Ниже приведено то, что я извлек из проекта С#.

массив ресурсов - это некоторые из ресурсов, которые я хотел бы вызвать

  1. restype=container&comp=list&include=моментальные снимки&include=метаданные
  2. комп=список
  3. контейнер + "/" + большой двоичный объект + "?comp=список страниц"
  4. контейнер + "/" + большой двоичный объект + "?comp=черный список

Что я извлек из логики С#

<cfhttp method="GET" url="http://#arguments.storageAccount#.#variables.hostEndPoint[storageType]#?#resource[1]#">
    <cfhttpparam type="header" name="x-ms-date" value="#dateTimeString#" />
    <cfhttpparam type="header" name="x-ms-version" value="2009-09-19" />
    <cfhttpparam type="header" name="Authorization" value="??????" />
</cfhttp>

Поскольку я не разработчик С#, если кто-то может объяснить, каким будет результат для следующего, я смогу его преобразовать.

Будет ли MessageSignature списком разделенных запятыми значений ниже (например, '{0}\n\n\n{1}\n{5}\n\n\n\n{2}\n\n\n\ n{3}{4},GET,,все, что возвращает ifMatch,...')

MessageSignature = String.Format("{0}\n\n\n{1}\n{5}\n\n\n\n{2}\n\n\n\n{3}{4}",
    method,
    (method == "GET" || method == "HEAD") ? String.Empty : request.ContentLength.ToString(),
    ifMatch,
    GetCanonicalizedHeaders(request),
    GetCanonicalizedResource(request.RequestUri, StorageAccount),
    md5
);

Что будет возвращено для примера строки (например, «Complex Azure!»)

    byte[] SignatureBytes = System.Text.Encoding.UTF8.GetBytes(MessageSignature);

Спасибо.


person david-l    schedule 31.10.2012    source источник


Ответы (2)


Некоторое время назад я пытался поиграть с REST API от Coldfusion, но без особого успеха, поэтому я не могу напрямую ответить на ваш вопрос (я также не смог правильно поставить подпись). Однако Microsoft теперь полностью поддерживает Azure Java SDK, который использует REST API и это должен быть расходный материал от Coldfusion (хотя у меня еще не было возможности попробовать - хотя я полностью собираюсь).

person Gary Menzel    schedule 02.11.2012
comment
Спасибо за ваш отзыв, Гэри, я не хочу использовать java sdk, так как я просто хочу вызвать один или два метода, поэтому это кажется излишним. Настолько расстраивает, что они сделали это таким сложным, а их документация далека от пояснений. - person david-l; 06.11.2012

Я создал видео, показывающее, как получить доступ к Azure REST API с помощью C#, я уверен, что видео может вам помочь, логика Java будет очень похожей.

http://youtu.be/NJQzEnk2Gck?hd=1

person Community    schedule 06.12.2012