0

WebClientを通じてListen360にファイルをアップロードする必要がありますが、ファイルはAzureブロブストレージに保存されています。ブロブストレージ内に保存されたファイルのURLをパスとして渡すと、「URI形式はサポートされていません」と表示されます。Azureブロブストレージに保存されたファイルをアップロード

UploadFile(URI、ファイル名)

私が保存されたファイルのブロブストレージのURLのファイル名ではなくローカルパスを与えるとき、それは動作します。

提案がありますか?

+0

'UploadFile()'が何であるか不明です。しかし...ブロブはローカルファイルと同じではありません。ブロブ付きの標準I/Oライブラリは使用できません。 URLを 'UploadFile()'に渡す場所をより具体的にするために質問を編集してください。 (意味...あなたは 'filename'パラメータとしてblob urlを渡していますか?) –

+0

質問を編集しました。ファイル名としてblob urlを渡す必要があります。 – Rushan

+0

このスレッドに関する最新情報はありますか? –

答えて

1

ファイルをローカルにダウンロードし、tempフォルダにダンプしてから、削除することをお勧めします。

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); 
} 
+0

私のシステムは、紺碧の雲でホストされています。ダウンロードしたファイルをローカルパスに保存することは可能でしょうか? – Rushan

+0

はいそうです –

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(); 
     } 
関連する問題