Существует два способа связи с хранилищем BLOB-объектов Azure:
- API на основе .NET - это тот, который вы использовали в обычном приложении .NET - однако его нельзя использовать из приложения Silverlight
- RESTfull HTTP API - это тот, который вы можете использовать непосредственно из Silverlight
Однако встроенной библиотеки нет. Вы должны будете написать HTTP-запросы самостоятельно. Это может быть немного сложно, и это будет выглядеть примерно так:
private void ListFiles()
{
var uri = String.Format("{0}{1}", _containerUrl, "?restype=container&comp=list&include=snapshots&include=metadata");
_webRequest = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(new Uri(uri));
_webRequest.BeginGetResponse(EndListFiles, Guid.NewGuid().ToString());
}
private void EndListFiles(IAsyncResult result)
{
var doc = _webRequest.EndGetResponse(result);
var xDoc = XDocument.Load(doc.GetResponseStream());
var blobs = from blob in xDoc.Descendants("Blob")
select ConvertToUserFile(blob);
//do whatever you need here with the blobs.
}
Обратите внимание, что это предполагает, что контейнер является общедоступным. Если ваш контейнер не является общедоступным, у вас будет два варианта:
- Подпишите ваш HTTP-запрос с помощью ключа приложения - это, как правило, плохие идеи, когда вы даете свой ключ доступа к приложениям Silverlight (которые могут распространяться через Интернет).
- Использовать подписи общего доступа
Подробнее о параметрах можно прочитать здесь.
Надеюсь, это поможет.