一个Azure的托管网站的文件夹中创建文件(Create a file in a folder of

2019-10-18 22:50发布

我需要从Azure的Blob存储文件复制到我的Azure中的“内容”文件夹托管网站,而我努力使这项工作! 任何帮助将是非常赞赏。 代码工作在我的本地服务器上的罚款,但在Azure托管时失败。

这里是我的功能:


public bool CopyFromAzure(string myContainer, string fileName, string filePath)
    {
        // Retrieve storage account from connection string.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
           ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

        // Create the blob client.
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

        // Retrieve reference to a previously created container.
        CloudBlobContainer container = blobClient.GetContainerReference(myContainer);

        // Retrieve reference to a blob named "myblob".
        CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);

        try
        {
            // Save blob contents to a file. 
            // --> here is where an error happens !! on System.IO.File.Create
            // The value of "filePath" is: F:\sitesroot\0\Content\tmp\file_2cfe0a3d-fa7a-4ab4-a665-cdebd90567d4.pdf

            using(FileStream fs= System.IO.File.Create(@filePath))
            {
                blockBlob.DownloadToStream(fs);
            }
        }
        catch (Exception e)
        {
            return false;
        }

        return true;
    }

问:可以将此链接到安全的喜好在Azure中或在我的网站配置?

thxs

Answer 1:

问题终于解决了。 出于某种原因,写权,不能在Azure的分布的子文件夹(例如:/内容/ tmp目录)。 我简单地写我的文件到项目的根解决了PB。

该工作的代码:

            string filePath = HttpContext.Current.Server.MapPath("~/" + fileName);
            using (FileStream fs = System.IO.File.OpenWrite(filePath))
            {
                blockBlob.DownloadToStream(fs);
            }


文章来源: Create a file in a folder of an Azure-hosted website