从blob下载本地工作,但不是在发布后

问题描述:

我创建了一个网站,可以用来上传文件到云并下载它。当我尝试下载文件时,它在本地运行一切正常。将文件发布到Azure后,状态显示该文件已下载,但文件在下载位置不可用。 由于提前从blob下载本地工作,但不是在发布后

//My Download Code 
` protected void OnDownloadImage(object sender, CommandEventArgs e) 
    { 
    var account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"); 
    var client = account.CreateCloudBlobClient(); 
    CloudBlobContainer blobContainer = client.GetContainerReference("Gallery"); 
    var blobUri = (string)e.CommandArgument; 
    var srcBlob = this.GetContainer().GetBlobReference(blobUri); 
    srcBlob.FetchAttributes(new BlobRequestOptions { BlobListingDetails = BlobListingDetails.Metadata }); 
    var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)); 
    path = path + @"\AJStorage"; 
    Directory.CreateDirectory(path); 
    path = path + "\\" + Path.GetFileName(srcBlob.Metadata["FileName"]); 
    srcBlob.DownloadToFile(path); 
    this.status.Text = "File Download Successful. File Location : " + path; 
    }` 
+0

@Jothishwar RS,请在您的问题中重新格式化您的代码并多解释一下以获得帮助。 – jay 2013-03-24 17:30:40

+0

我认为问题在于我设置了将文件保存到本地光盘的路径。错误可能是因为服务器没有适当的权限来创建文件。我想知道如何改变我的代码,以允许从服务器下载文件,同时在本地正常工作。 谢谢 – 2013-03-24 18:49:10

我想我明白这个问题。您正试图将文件下载到桌面 - 但这将是Web服务器的桌面(几乎可以肯定没有权限),而不是用户的桌面(这可能是您以后的内容)。如果是这样,你不能直接这样做。请尝试将文件发送到HTTP响应流。 (我使用的是DownloadToStream,它是Microsoft.WindowsAzure.StorageClient的一部分)

+0

thnx Andiih给你回复。恰恰wat你说的是我的网站的错误。现在我清除了我的错误,并设置为wrk :) thnx很多 我以前也有过下面的博客。 http://blogs.msdn.com/b/avkashchauhan/archive/2011/04/05/downloading-word-and-excel-files-from-windows-azure-storage-in-a-asp-net-web -role.aspx – 2013-03-24 19:46:46

+0

酷 - 你引用的代码使用DownloadToStream,几乎正是我所做的:-) – Andiih 2013-03-25 08:56:16