【问题标题】:Is there a way to know if a file has been uploaded to a network drive in Azure有没有办法知道文件是否已上传到 Azure 中的网络驱动器
【发布时间】:2020-08-25 01:43:24
【问题描述】:

我有一个网络位置,每小时都会转储一个 csv 文件。我需要将该文件复制到 azure blob。我如何知道文件已上传到该网络驱动器。天蓝色中是否有类似文件观察器的东西来监控这个网络位置?另外,是否可以通过代码将文件从网络位置复制到 azure blob?

我正在使用部署到 Azure 应用服务的 .net 核心 API。

请提出一个可能的解决方案。

【问题讨论】:

  • 你能告诉我网络驱动器是不是像 Azure 文件这样的 Azure 服务吗?如果是 Azure 服务,我们可以使用 Azure 应用服务 Web 作业或 Azure 功能服务来监控网络位置。
  • 不。它是一个本地共享驱动器位置。它就像“\\network\sharedfolders\csvfiles”
  • 据我所知,如果您的应用程序已部署到 azure Web 应用程序,这意味着您可以使用托管在 Azure 上的应用程序访问共享驱动器位置。此外,没有 Azure 服务可以监控网络共享。

标签: azure asp.net-core-webapi azure-blob-storage file-watcher azure-appservice


【解决方案1】:

您可以使用 Azure 事件网格,但从今天开始,事件网格不支持 Azure 文件共享。

作为您在本地的文件共享,我看到的唯一方法是您可以编写一个自定义发布者,该发布者可以在本地运行并使用 Azure 事件网格将事件发送到 Azure 事件网格和可以是 Azure 函数的订阅者做你想让它做的工作。

https://docs.microsoft.com/en-us/azure/event-grid/custom-event-quickstart-portal

但这只是一个事件,而不是已添加\更改的文件本身,为此,您还必须将文件本身上传到 Azure 中进行处理。由于上述方式需要您做两件事,我建议您在本地运行一个自定义代码,该代码运行 CRON 作业并查找新的或已编辑的文件,然后上传到 Azure BLOB 存储,然后执行 Azure Function 来完成您的处理任务.

【讨论】:

    【解决方案2】:

    由于文件是本地文件,您可以使用 powershell 监控文件夹中的新文件。然后触发事件以将文件上传到 Azure blob。

    这里有一个视频展示了如何做到这一点:https://www.youtube.com/watch?v=Usih7UywZYA

    你需要做的改变是:

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 2020-09-03
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多