我必須通過webclient將文件上傳到Listen360,但我的文件存儲在Azure Blob存儲中。當我將存儲在BLOB存儲中的文件的URL作爲路徑時,它會提供「不支持URI格式」。上傳存儲在Azure Blob存儲中的文件
UploadFile(URI,文件名)
它,當我給文件名而不是存儲文件的Blob存儲URL的本地路徑工作。
有什麼建議嗎?
我必須通過webclient將文件上傳到Listen360,但我的文件存儲在Azure Blob存儲中。當我將存儲在BLOB存儲中的文件的URL作爲路徑時,它會提供「不支持URI格式」。上傳存儲在Azure Blob存儲中的文件
UploadFile(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);
}
我的系統託管在天藍色的雲中。是否有可能將下載的文件保存在本地路徑中? – Rushan
是的,應該工作 –
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();
}
不確定'UploadFile()'是什麼。但是...... blob與本地文件不同 - 你不能將標準I/O庫與blob一起使用。你可以編輯你的問題,以更具體地將URL傳遞給'UploadFile()'嗎? (意思是...你傳遞一個blob url作爲'filename'參數嗎?) –
編輯了這個問題,我需要傳遞blob url作爲文件名。 – Rushan
你有關於此主題的任何更新嗎? –