Azure功能:访问文件夹结构

时间:2018-07-26 09:43:08

标签: azure azure-storage azure-functions

刚刚开始测试Azure函数,以了解它是否适​​合我们的应用程序。

我想要的是/api/updateToVersion/3.0之类的函数,其中的代码将查看是否存在文件夹3.0,如果存在,它将压缩该文件夹并以byte []的形式发送。

但是我不知道该文件夹(可能包含多个文件)应该存放在哪里。 Azube Blob存储(如果我错了,请纠正我)仅用于单个文件。不是文件夹。 我已将文件夹3.0上传到我的Microsoft Azure存储(在“文件”共享中)。 如何通过我的函数访问?

2 个答案:

答案 0 :(得分:3)

您可以使用 Azure Storage SDK 与文件进行交互。不幸的是,您将无法在Azure函数中简单地装载Azure文件共享。


但是,我会使用 Azure Blob存储。 Azure Blob存储使用虚拟目录之类的东西,其中目录名是文件名的一部分。

e。 G。您有一个名为 mycontainer 的容器,您可以在其中放置文件,例如:

/api/updateToVersion/3.0/customers.csv
/api/updateToVersion/3.0/account.txt

现在,您可以检索/api/updateToVersion/3.0/内的所有文件-例如:

 var directory = CloudStorageAccount.Parse("yourCs").
    CreateCloudBlobClient().
    GetContainerReference("mycontainer").
    GetDirectoryReference(@"/api/updateToVersion/3.0/");

最后遍历文件并压缩/发送它们。

答案 1 :(得分:2)

因此,经过一些研究,我得出了以下结论:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(webStorageConfigString);
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("MYFOLDERNAME");
if (!(await share.ExistsAsync()))
  throw new Exception($"No folder found: MYFOLDERNAME");

// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
CloudFileDirectory mcmUpdateDir = rootDir.GetDirectoryReference("OTHER FOLDER");

,依此类推。 我只是将它发布在这里,供其他有相同问题的人