我必须通过webclient将文件上传到Listen360,但我的文件存储在Azure blob存储中。当我将blob存储中保存文件的URL作为路径时,它会提供"不支持URI格式。"
UploadFile(URI,filename)
当我给文件名提供本地路径但不存储存储文件的blob存储URL时,它可以工作。
有什么建议吗?
答案 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();
}