我正在尝试在 Azure 函数中使用领域云,但它一直给我一个错误:
make_dir() failed: Permission denied Path: /realm-object-server/
有没有办法将 Azure Functions 配置为具有创建文件的权限?我是 Azure Functions 的新手,这是我的第一个功能,所以我不太确定所有细节。
我正在尝试在 Azure 函数中使用领域云,但它一直给我一个错误:
make_dir() failed: Permission denied Path: /realm-object-server/
有没有办法将 Azure Functions 配置为具有创建文件的权限?我是 Azure Functions 的新手,这是我的第一个功能,所以我不太确定所有细节。
我找到了一个解决方案。在 Azure 函数中,您只能在 temp 文件夹中创建任何文件或文件夹。因此,如果您使用以下同步配置,它应该可以工作。它对我有用。
var configuration = new FullSyncConfiguration(new Uri("/~/<your-realm-name>", UriKind.Relative), _realmUser, Path.Combine(Path.GetTempPath(), "realm-object-server"));
所以基本上,在这里您传递文件夹名称以在本地存储领域。如果您不传递文件夹名称,它将尝试将其存储在您将收到访问错误的默认位置。
我不熟悉 Realm,但函数默认具有与文件系统交互的权限。有关应用服务文件系统的信息,请参阅这些链接(这也适用于函数): https ://docs.microsoft.com/en-us/azure/app-service/operating-system-functionality#file-access https: //github.com/projectkudu/kudu/wiki/Understanding-the-Azure-App-Service-file-system
如果函数是使用 run from package 部署的,那么 wwwroot 是只读的。但由于错误消息中的路径不指向 wwwroot,这可能不是问题所在。
我最好的猜测是失败的代码试图在不适当的位置写入。上面链接中的信息应该有助于解决这个问题。也许检查领域是否有一个配置设置,可让您指定它应该在哪个位置创建“领域对象服务器”。
您可以使用
SyncConfigurationBase.Initialize(UserPersistenceMode.NotEncrypted, basePath: Path.GetTempPath());