上传存储在 Azure blob 存储中的文件
Upload file which stored in Azure blob storage
我必须通过 webclient 将文件上传到 Listen360,但我的文件存储在 Azure blob 存储中。当我将 blob 存储中已保存文件的 URL 作为路径时,它会给出 "URI formats are not supported."
上传文件(URI,文件名)
当我给出文件名的本地路径但不适用于存储文件的 blob 存储 url 时它起作用。
有什么建议吗?
您可能想将文件下载到本地,然后将其转储到临时文件夹中,然后将其删除,假设这是您唯一可以执行此操作的方法。
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);
}
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();
}
我必须通过 webclient 将文件上传到 Listen360,但我的文件存储在 Azure blob 存储中。当我将 blob 存储中已保存文件的 URL 作为路径时,它会给出 "URI formats are not supported."
上传文件(URI,文件名)
当我给出文件名的本地路径但不适用于存储文件的 blob 存储 url 时它起作用。
有什么建议吗?
您可能想将文件下载到本地,然后将其转储到临时文件夹中,然后将其删除,假设这是您唯一可以执行此操作的方法。
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);
}
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();
}