我们有一个多租户系统,包括Azure Web角色,工作者角色和桌面/移动应用程序。每个客户端应用程序都允许上传路由到特定于租户的Azure Blob存储帐户的图像。
Azure辅助角色轮询这些文件并对其进行处理。我们使用第三方SDK进行处理,需要文件系统路径或流。直接从blob存储提供流是微不足道的,但SDK也希望吐出我们的应用程序消耗的物理元数据文件。
这是一个问题,因为SDK是一个黑盒子,并没有提供替代方案。有没有办法在工作者角色中为瞬态文件提供本地存储。此存储仅在每个工作者角色迭代几秒钟内需要,并且如果角色被回收或关闭,则可以回收/丢弃该存储。此外,文件相当大(500MB +),因此不需要blob延迟。
搜索周围显示了一些hacky解决方法,其中最好的解决方案似乎包含blob存储,让我们的角色将其作为文件系统访问。
是否可以简单地访问类似于Web角色App_Data文件夹的文件系统?
答案 0 :(得分:3)
您可以在Azure辅助角色中使用RoleEnvironment.GetLocalResource()来获取本地文件存储的命名句柄:
RoleEnvironment.GetLocalResource()
这将避免可能随时间变化的特定文件路径的硬编码等。
祝你好运!