gpt4 book ai didi

c# - 将文件从 Azure Blob 同步到本地

转载 作者:行者123 更新时间:2023-12-05 05:28:29 25 4
gpt4 key购买 nike

我喜欢写一个Worker角色的进程,将文件夹(目录)下的一批文件下载(同步)到本地镜像文件夹(目录)

上次更新文件夹(目录)的时间是否有时间戳(或获取方式)?

由于文件夹(目录)结构不确定,但简单地说就是一旦发生变化就将那里的任何内容下载到本地。除了递归和设置一个定时器来反复检查它,你还有什么聪明的想法?

(编辑)我发现了很多关于从本地到 Azure 存储同步文件的解决方案,但是本地文件的相同原则不适用于 Azure blob,我仍在寻找一种最容易将文件更改后立即下载(同步)到本地的方法.

最佳答案

Eric,如果我理解正确的话,我相信你试图实现的概念对于你的核心需求来说并不是那么有效。

考虑以下场景:

  1. 将您的 View 保存在 blob 存储中。
  2. 实现 Azure (AppFabric) 缓存。
  3. 将任何 View 文件存储到缓存中,如果它在具有无限(或非常长)到期时间的 Web 请求中尚不存在。
  4. 在您的 Web 角色实例上启用具有较短到期时间(例如 5 分钟)的本地缓存
  5. 在您的 Web 角色之外创建一个(单一的、独立的) worker 角色,该角色会扫描您的 blob 的 ETag 以了解时间间隔的变化。为任何更改的 blob 重置 View 的缓存键
  6. 摆脱网络角色中那些丑陋的“ worker ”:-)

在这种情况下需要考虑以下几点:

  • 您更新的 View 将在“本地缓存过期时间 + 工作扫描间隔”内到达 Web 角色实例。值越低,分布式缓存请求和 blob 存储事务越多。
  • Azure AppFabric 缓存是唯一阻止整个平台真正可扩展的 Azure 服务。您必须根据 View 的总体大小(以 MB 为单位)、实例数以及每个实例所需的同时缓存请求数来选择最佳缓存计划。
  • 考虑在您的实例中缓存已编译的 View (而不是在 AppFabric 缓存中)。根据专用 AppFabric 缓存键重置此本地缓存。这将为您大大提高性能,因为渲染输出 html 就像将模型注入(inject)预编译 View 一样简单。
  • 当然,如果出于任何原因无法从缓存中检索 View ,您网络角色中的缓存检索代码必须能够从主要来源(存储)检索 View 。

关于c# - 将文件从 Azure Blob 同步到本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9966317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com