检查SharePoint中的文件是否已完成上传。

问题描述 投票:0回答:1

我正在构建一个管道,SharePoint 将成为数据摄取的来源。我想使用Azure LogicApps,并在创建或修改文件时运行一个触发器。当文件上传到 SharePoint 时,LogicApps 应将文件复制到 Blob 存储。我面临的问题是,即使文件还没有 100% 上传,触发器也会发生,从而导致复制空文件或不完整的文件。

我尝试了几个SharePoint触发器,看看是否只是其中一个触发器的问题,但它们都有同样的问题。

我决定使用Python与 Office365-REST-Python-Client 部署在Azure Functions中,以处理将文件复制到Azure Blob存储中。我有以下代码。

def download_file(context, sharepoint_file_path, local_file_path):
  response = File.open_binary(context, sharepoint_file_path)

  response.raise_for_status()

  with open(local_file_path, 'wb') as f:
      f.write(response.content)

我检查了响应的 status_code 甚至对于不完整的文件,它也会返回 200 这仍然无法帮助检查文件是否完整。

如何解决这个问题?谢谢您。

python azure sharepoint azure-logic-apps
1个回答
1
投票

在我看来,我们很难检查sharepoint中的文件是否已经上传完毕。但是我们可以通过一些变通的方法来避免文件还没有完成上传的情况。

你需要根据你的文件大小来估算上传过程需要多长时间,然后在文件中添加一个""。延时"的动作后触发。enter image description here

比如上面截图中的延迟5分钟。5分钟后,文件完成上传操作,将复制到blob存储成功。

© www.soinside.com 2019 - 2024. All rights reserved.