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

2024-10-03 19:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个管道,SharePoint将作为数据摄取的源。我想在创建或修改文件时使用带有触发器的Azure LogicApps。将文件上载到SharePoint时,LogicApps应将该文件复制到Blob存储。我面临一个问题,即即使文件尚未100%上传,也可能发生触发,从而导致复制空文件或不完整文件

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

我决定使用Python并在Azure函数中部署Office365-REST-Python-Client来处理将文件复制到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,这仍然无助于检查文件是否完整

我怎样才能解决这个问题?多谢各位


Tags: 文件path管道responselocalstatuscontextopen
1条回答
网友
1楼 · 发布于 2024-10-03 19:28:56

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

您需要根据文件的大小估计上载过程需要多长时间,然后在触发器后添加“Delay”操作。 enter image description here

例如,在上面的屏幕截图中,它会延迟5分钟。5分钟后,文件完成上载操作,并将成功复制到blob存储

相关问题 更多 >