2012-10-31 47 views
2

我碰到了一堵磚牆,試圖鍛鍊如何列出所有容器和Blob。奇怪的是,我還沒有看到一個這樣做的Coldfusion示例。使用C#使用Coldfusion通過REST訪問Azure blob存儲示例

我試過下面的C#項目,但我堅持在創建簽名的時刻。以下是我從C#項目中提取的內容。

資源陣列 - 這是一些資源我想調用

  1. restype =容器&排版=列表&包括=快照&包括元數據=
  2. 排版=列表
  3. 容器+「/」+ blob +「?comp = pagelist
  4. container +」/「+ blob +」?comp = blocklist

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

由於IM提取什麼不是C#開發人員,如果有人可以解釋的結果會是怎樣以下我或許可以將其轉換。

MessageSignature是一個以逗號分隔的值列表(即{0} \ n \ n \ n {1} \ n {5} \ n \ n \ n \ n {2} \ 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 
); 

什麼將下列返回爲例字符串(如 '複雜天青!')

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

謝謝。

回答

1

前段時間我嘗試過使用Coldfusion的REST API,但沒有獲得太多成功,所以我無法直接回答你的問題(我也無法得到簽名)。但是,微軟現在完全支持使用REST API的Azure Java SDK,這應該可以從Coldfusion消費(雖然我還沒有機會嘗試它 - 儘管我完全打算這麼做)。

+0

感謝您的反饋加里,我不想使用Java SDK的作爲即時通訊只是希望調用一個或兩個的方法,所以它似乎矯枉過正。令人沮喪的是,他們使得它變得如此複雜,他們的文檔遠沒有自我解釋。 –