上载存储在Azure blob存储中的文件

时间:2016-12-28 17:10:53

标签: azure file-upload azure-storage webclient azure-storage-blobs

我必须通过webclient将文件上传到Listen360,但我的文件存储在Azure blob存储中。当我将blob存储中保存文件的URL作为路径时,它会提供"不支持URI格式。"

UploadFile(URI,filename)

当我给文件名提供本地路径但不存储存储文件的blob存储URL时,它可以工作。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可能希望在本地下载该文件,并将其转储到临时文件夹中,然后将其删除,假设这是您可以执行此操作的唯一方法。

string fileName = Path.GetTempPath() + Guid.NewGuid().ToString() + ".xml";

using(var client = new WebClient ())
{
   client.DownloadFile(blob.URL, fileName);

   UploadFile(fileName, "mystuff.xml");
   File.Delete(fileName);
}

答案 1 :(得分:0)

WebClient.UploadFile只允许将指定的本地文件上载到具有指定URI的资源。我们可以使用流将文件上传到资源。以下是我的示例演示代码。它适用于我。

       using (var client = new WebClient())
       {
           var download = client.DownloadData("blob url");
           client.Credentials = new NetworkCredential(@"userName","password");// Some code for authenticating
           var clientStream =client.OpenWrite(new Uri("your Url"));
           clientStream.Write(download, 0, download.Length);
           clientStream.Close();
       }