2017-06-19 175 views
0

我試圖以編程方式下載我剛纔保存到Azure的文件存儲中的文件,我得到一個天青FileStorage CloudFile

{"The remote server returned an error: (400) Bad Request."}

當我打電話的DownloadToStream方法。什麼做錯了?
任何幫助將不勝感激。謝謝!

下面是代碼:

 var combinedRelativeDirectory = GetCloudDirectory(relativePath); 
     CloudFile cloudFile = null; 

     cloudFile = combinedRelativeDirectory.GetFileReference(filename); 
     var memoryStream = new MemoryStream(); 

     cloudFile.DownloadToStream(memoryStream, AccessCondition.GenerateIfExistsCondition()); 
     memoryStream.Position = 0; 
     return memoryStream; 
+0

您確定該文件是否存在?又名'if(cloudFile.Exists()){..}' –

回答

2

我可以用你的代碼重現您的問題。通過查看來自Fiddler的響應消息。我發現詳細錯誤消息是'條件標頭不受支持'。刪除AccessCondition.GenerateIfExistsCondition()參數後,代碼可以正常工作。

cloudFile.DownloadToStream(memoryStream); 

如果要在下載文件之前檢查文件是否存在,可以使用Exists方法。

if (file.Exists()) 
{ 
    file.DownloadToStream(memoryStream); 
} 
+0

謝謝!我會盡快嘗試。 –

+0

這工作出色!非常感謝! –

+0

如果有人想了解更多有關對Azure存儲進行故障排除的信息,包括使用Fiddler,請查看:https://docs.microsoft.com/en-us/azure/storage/storage-e2e-troubleshooting –