在Azure WebJobs中写入和读取本地存储

时间:2016-03-28 20:29:56

标签: azure azure-webjobs azure-web-app-service

我需要在Azure WebJob中使用本地存储(如果重要则连续)。推荐的路径是什么?我希望它尽可能持久,所以我不想要一个Temp目录。我很清楚azure中的本地存储总是需要Blob存储或其他方式支持,我已经处理过了。

(要抢占最后一部分的问题:这是一个不经常更改但是大文件(可能每周更改一次),我希望在启动时以更快的速度在本地存储中缓存。如果没有,或者如果没有date(我将处理检查),它将从源blob下载等等。)

Accessing Local Storage in azure等相关问题并不特别适用于WebJob。但是,this question是至关重要的,但1)答案回复使用Server.MapPath,这是我认为的System.Web依赖解决方案,2)我没有找到这个答案研究或确定的​​基础(虽然它可能是对最佳解决方案的一个很好的猜测)。如果Azure团队在这个重要问题上给出了更多指导,那就太好了,我们谈论的不仅仅是使用本地硬盘。

以下是一些值得考虑的环境变量,但我不知道使用哪个:

Environment.CurrentDirectory: D:\local\Temp\jobs\continuous\webjobname123\idididid.id0

[PUBLIC, D:\Users\Public]
[ALLUSERSPROFILE, D:\local\ProgramData]
[LOCALAPPDATA, D:\local\LocalAppData]
[ProgramData, D:\local\ProgramData]
[WEBJOBS_PATH, D:\local\Temp\jobs\continuous\webjobname123\idididid.id0]
[SystemDrive, D:]
[LOCAL_EXPANDED, C:\DWASFiles\Sites\#1appservicename123]
[WEBSITE_SITE_NAME, webjobname123]
[USERPROFILE, D:\local\UserProfile]
[USERNAME, RD00333D444333$]
[WEBSITE_OWNER_NAME, asdf1234-asdf-1234-asdf-1234asdf1234+eastuswebspace]
[APP_POOL_CONFIG, C:\DWASFiles\Sites\#1appservicename123\Config\applicationhost.config]
[WEBJOBS_NAME, webjobname123]
[APPSETTING_WEBSITE_SITE_NAME, webjobname123]
[WEBROOT_PATH, D:\home\site\wwwroot]
[TMP, D:\local\Temp]
[COMPUTERNAME, RD00333D444333]
[HOME_EXPANDED, C:\DWASFiles\Sites\#1appservicename123\VirtualDirectory0]
[APPDATA, D:\local\AppData]
[WEBSITE_INSTANCE_ID, asdf1234asdf134asdf1234asdf1234asdf1234asdf1234asdf12345asdf12342]
[HOMEPATH, \home]
[WEBJOBS_SHUTDOWN_FILE, D:\local\Temp\JobsShutdown\continuous\webjobname123\asdf1234.pfs]
[WEBJOBS_DATA_PATH, D:\home\data\jobs\continuous\webjobname123]
[HOME, D:\home]
[TEMP, D:\local\Temp]

1 个答案:

答案 0 :(得分:2)

使用%HOME%环境变量作为基本路径很适合我。我使用子文件夹来存储作业特定的数据,但此基本路径之上的其他文件夹结构可能有效。有关详细信息,请查看https://github.com/projectkudu/kudu/wiki/Understanding-the-Azure-App-Service-file-systemhttps://github.com/projectkudu/kudu/wiki/File-structure-on-azure