2

我在一个项目中,从 Azure 文件存储帐户下载文档(.pdf)的能力会很有用。这可能吗?我目前只能将目录和目录的文件内容路径输出为字符串,但无法使用 Microsoft.Azure 命名空间访问这些路径中的文件。

其他详细信息:在 C#/ASP.NET 中,作为 Azure Web 应用程序部署

谢谢你。

C

4

3 回答 3

5

对的,这是可能的。

这是一个演示供您参考:

我的文件共享和一个图片文件如下:

在此处输入图像描述

我的代码如下:

    public static void DownloadFromFileStorage()
    {
        CloudStorageAccount account = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=leeliublob;AccountKey=OxxxxxxxxQSy2vkvSi/x/e9l9FhLqayXcbxxxxxJ5Wjkly1DsQPYY5dF2JrAVHtBozbJo29ZrrGJA==;EndpointSuffix=core.windows.net");
        CloudFileClient client = account.CreateCloudFileClient();


        //get File Share
        CloudFileShare cloudFileShare = client.GetShareReference("myfile");

        //get the related directory
        CloudFileDirectory root = cloudFileShare.GetRootDirectoryReference();
        CloudFileDirectory dir = root.GetDirectoryReference("Folder1");

        //get the file reference
        CloudFile file = dir.GetFileReference("1.PNG");

        //download file to local disk
        file.DownloadToFile("C:\\Test\\1.PNG", System.IO.FileMode.OpenOrCreate);

    }

结果截图:

在此处输入图像描述

于 2018-06-06T09:42:58.393 回答
0

要回答 yanivtwin,下载到文件将是:

file.GetFileReference("1.PNG").DownloadToFile("FolderPath",System.IO.FileMode.OpenOrCreate);

于 2020-09-25T16:41:23.897 回答
-1

这不是 .NET 解决方案。我为任何使用 Windows 的人提供了这个解决方案,并且希望有一个非常简单的解决方案来从 blob 下载任何文件。最简单的方法是使用azcopy命令。azcopy此处 下载.exe 对于 Windows - 启动 cmd 并通过转到下载的文件夹来启动下载的 .exe。

cd <folder-with-azcopy.exe>
azopy.exe

然后转到您的存储帐户-> 在设置下转到共享访问签名-> 创建并获取 SAS 令牌。

在 CMD 中运行以下命令:SAS 令牌以 开头?sig=...<local-directory-path>是您希望将所有内容下载到 ( C:/Users/.../download) 的文件夹。

azcopy cp 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' '<local-directory-path>' --recursive=True
于 2020-12-22T16:03:51.840 回答