2

すべてのコンテナーとブロブを一覧表示する方法を試してみようとして、レンガの壁にぶつかりました。奇妙なことに、これを行う Coldfusion の例を 1 つも見たことがありません。

C# プロジェクトに従ってみましたが、署名を作成する段階で行き詰まっています。以下は、これまでの C# プロジェクトから抽出したものです。

リソース配列 - これらは、呼び出したいリソースの一部です

  1. restype=コンテナ&コンプ=リスト&インクルード=スナップショット&インクルード=メタデータ
  2. comp=リスト
  3. コンテナー + "/" + ブロブ + "?comp=pagelist
  4. コンテナー + "/" + ブロブ + "?comp=ブロックリスト

C# ロジックから抽出したもの

<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>

私はC#開発者ではないので、次の結果がどうなるかを誰かが説明できれば、それを変換できるかもしれません。

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);

ありがとうございました。

4

3 に答える 3

1

C#を使用してAzure REST APIにアクセスする方法を示すビデオを作成しました。このビデオが役立つと確信しています。Javaロジックは、非常によく似ています。

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

于 2012-12-06T23:16:04.847 に答える
1

少し前に Coldfusion の REST API を試してみましたが、うまくいきませんでした。そのため、質問に直接答えることができません (署名も正しく取得できませんでした)。ただし、Microsoft は現在、REST API を使用するAzure Java SDKを完全にサポートしており、これは Coldfusion から利用できるはずです (ただし、まだ試す機会はありませんが、完全に試すつもりはあります)。

于 2012-11-02T02:57:40.423 に答える