【问题标题】:Azure Function Temp Files Clean UpAzure 函数临时文件清理
【发布时间】:2020-03-16 10:01:52
【问题描述】:

我有一个带有 c#.net 核心代码的 Azure Function v2,在专用应用服务计划上运行。该函数下载文件,然后通过 Microsoft Graph 将它们上传到 Sharepoint 库。

My code looks like this
 var path = System.IO.Path.GetTempPath() + downloadedfileName;
 using (var stream = System.IO.File.Create(path)                
 {
    //put content from downloaded file into stream
    //call graph to use the stream and upload the content.
 }

这段代码运行良好,但我担心临时空间不足。 我的问题是:

  1. 什么时候清除这个临时文件
  2. 如果没有自动清除,如何清除?
  3. 还有其他替代方法来处理这种上传场景吗?

【问题讨论】:

  • 如果你想确定,为什么不在代码流的末尾删除文件?
  • 感谢您的回复。我想知道 Azure Function App 是如何处理这些临时文件的。如果他们根本没有被清除,那么我将不得不按照你的建议去做。
  • 既然你在应用服务模式下运行:这应该是你的答案(然后以同样的方式适用于函数)stackoverflow.com/questions/34247801/…
  • @AzureDev31 是的,临时文件根本不会自动清除。您需要手动重新启动启动站点。看看这个文档:github.com/projectkudu/kudu/wiki/…

标签: azure-functions microsoft-graph-api


【解决方案1】:

请看this doc。

没有自动的方法,只能手动完成。由于 Azure Function 是一个 Web App 沙箱,如果你不删除代码中的文件,你可以选择的方法是文档中提供的重启站点。

【讨论】:

  • 谢谢@BowmanZhu。如果 Azure 功能可以自动处理未使用文件的清理,而不是我们通过重新启动手动进行清理,那就太好了。现在,在我的代码中,我添加了使用 (var stream = File.Create(filename, buffersize, FileOptions.DeleteOnClose)) 删除文件的选项。你认为我可以在 D:/home 目录中看到这个临时文件吗?
  • @AzureDev31 不,它不在D:/home 中。应该是D:\local\Temp> 和D:\local\AppData>。使用 kudu 工具去那个,然后你可以看看。:)
猜你喜欢
  • 2016-03-18
  • 2023-03-05
  • 2013-04-14
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多