【发布时间】:2019-04-26 08:16:03
【问题描述】:
有没有一种简单的方法可以从容器内部下载所有文件并维护目录结构?
例如,我已将以下目录上传到容器“用户”中的 Azure 存储帐户。
../用户名/文件/ ../用户名/文件/default.htm ../用户名/文件/1.txt ../用户名/文件/2.txt
下面的代码会将default.htm文件下载到C:\users\username\files\default.htm
问题是我不想下载特定文件。我希望能够获取 users/username/ 中的每个文件,并让它在所需的本地存储路径中输出相同的目录结构。
我将在这个容器内有多个“目录”(不同的用户),它们的结构并不总是相同的,有些可能有多个带有文件的子目录,有些可能没有,等等。所以我真想找个说法:
从“用户/用户名”下载所有到 C:\users\username\
private static void DownloadFromAzureStorage()// RUN on new server
{
string azureStorageAccountName =
ConfigurationManager.AppSettings["AzureStorageAccountName"];
string azureStorageAccountKey =
ConfigurationManager.AppSettings["AzureStorageAccountKey"];
string target =
ConfigurationManager.AppSettings["TargetDirectoryPath"];
//C:\username\files\
var storageCredentials = new
StorageCredentials(azureStorageAccountName, azureStorageAccountKey);
var csa = new CloudStorageAccount(storageCredentials, true);
CloudBlobClient blobClient = csa.CreateCloudBlobClient();
CloudBlobContainer container =
blobClient.GetContainerReference("users");
CloudBlockBlob blockBlob =
container.GetBlockBlobReference("username/files/default.htm");
string path = (target + "default.htm");
blockBlob.DownloadToFile(path, FileMode.OpenOrCreate);
}
【问题讨论】:
标签: c# azure-storage azure-blob-storage