我们有一个 Multi-Tenancy 系统,由 Azure Web 角色、辅助角色和桌面/移动应用程序组成。每个客户端应用程序都允许上传路由到特定于租户的 Azure Blob 存储帐户的图像。
Azure 辅助角色轮询这些文件并处理它们。我们使用第三方 SDK 进行需要文件系统路径或流的处理。直接从 blob 存储提供流很简单,但 SDK 还希望吐出我们的应用程序使用的物理元数据文件。
这是一个问题,因为 SDK 是一个黑匣子并且不提供替代方案。有没有办法在工作角色中为临时文件提供本地存储。每个工作角色迭代仅需要此存储几秒钟,并且如果角色被回收或关闭,则可能会被回收/丢弃。此外,这些文件相当大(500MB 以上),因此不需要 blob 延迟。
搜索发现了一些黑客的解决方法,其中最好的似乎是包装 blob 存储,让我们的角色将其作为文件系统访问。
有没有一种方法可以简单地访问类似于 Web Role App_Data 文件夹的文件系统?
最佳答案
您可以在 Azure 辅助角色中使用 RoleEnvironment.GetLocalResource() 来获取本地文件存储的命名句柄:
RoleEnvironment.GetLocalResource()
这将避免对可能随时间变化的特定文件路径进行硬编码等。
祝你好运!
关于c# - 在 Azure 辅助角色中读取/写入临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36782839/