刚刚开始测试Azure函数,以了解它是否适合我们的应用程序。
我想要的是/api/updateToVersion/3.0之类的函数,其中的代码将查看是否存在文件夹3.0,如果存在,它将压缩该文件夹并以byte []的形式发送。
但是我不知道该文件夹(可能包含多个文件)应该存放在哪里。 Azube Blob存储(如果我错了,请纠正我)仅用于单个文件。不是文件夹。 我已将文件夹3.0上传到我的Microsoft Azure存储(在“文件”共享中)。 如何通过我的函数访问?
答案 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");
,依此类推。 我只是将它发布在这里,供其他有相同问题的人