如何在Silverlight应用程序中显示Container的Azure blob列表?
我知道如何在常规.Net中执行此操作,但我需要在Silverlight中 。 我可以上传,但我想显示已上传内容的列表。
像这样的东西,但对于Silverlight:
CloudStorageAccount account =
CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudBlobClient blobClient = account.CreateCloudBlobClient();
IEnumerable<CloudBlobContainer> containers = blobClient.ListContainers()
由于
答案 0 :(得分:1)
有两种与Azure Blob存储通信的方式:
但是没有内置库。您必须自己编写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.
}
请注意,这假设容器是公共的。如果您的容器不公开,那么您有两个选择:
您可以阅读有关options here.
的更多信息希望有所帮助。
答案 1 :(得分:0)
这里没有魔法。我可以使用API或(我将要做的)使用WCF服务来获取Azure blob存储并通过我的Silverlight应用程序传递此服务以获取数据。
不是魔术而是复杂。