Я наткнулся на кирпичную стену, пытаясь научиться составлять список всех контейнеров и больших двоичных объектов. Как ни странно, я не видел ни одного примера Coldfusion, который делал бы это.
Я пытался следовать проекту С#, но я застрял в момент создания подписи. Ниже приведено то, что я извлек из проекта С#.
массив ресурсов - это некоторые из ресурсов, которые я хотел бы вызвать
- restype=container&comp=list&include=моментальные снимки&include=метаданные
- комп=список
- контейнер + "/" + большой двоичный объект + "?comp=список страниц"
- контейнер + "/" + большой двоичный объект + "?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);
Спасибо.