【问题标题】:Where to put SQLite database file in Azure App Service?将 SQLite 数据库文件放在 Azure 应用服务中的什么位置?
【发布时间】:2016-09-16 00:15:53
【问题描述】:

Q1:您认为将 SQLite 数据库文件 (database.sqlite) 放在 Azure Web App 文件中的正确位置系统?例如:

  1. D:\home\data\database.sqlite
  2. D:\home\site\database.sqlite
  3. D:\home\site\wwwroot\database.sqlite
  4. 其他?

Q2:还应考虑哪些其他事项,以确保公共用户无法访问数据库文件,以及在部署期间或应用程序运行时不会意外覆盖数据库文件放大/缩小? (Web 应用程序配置为从本地 Git 存储库进行部署)

Q3:在哪里可以了解Azure App Service中使用的文件系统,官方来源网址?例如。它如何在单个 Web 应用程序中的多个虚拟机之间共享,当应用程序按比例放大/缩小时它是如何工作的,D:\home(持久性)与 D:\local(非持久性)之间有什么区别...

请注意,SQLiteAzure Blob 存储 中不起作用,因此无法选择。请不要建议替代存储解决方案,这个问题专门针对 SQLite

参考文献

【问题讨论】:

  • Q1) 选项 2 和 3 相同 Q3) 离题
  • 仅限第三季度 Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam.
  • @lad2025 这个问题与个人意见无关,它与 Azure 应用服务的运行方式直接相关,在部署期间文件最有可能在什么位置被覆盖或扩大/缩小......以及在什么位置位置会很安全。
  • recommend ... tutorial or other off-site resource
  • @lad2025 这个问题没有证据就无法回答(答案中提供的信息的原始资源)。

标签: database sqlite azure azure-web-app-service


【解决方案1】:

Web 应用可以连接到存储帐户,因此您实际上可以使用 Blob 存储并将其连接到您的 Web 应用。因此,在了解更多信息方面,您需要查看documentation 的相应页面。

然后,您可以在 Web 应用设置中选择要使用的存储帐户。您可以在“设置”>“数据连接”下找到它,您可以从下拉框中选择“存储”。

【讨论】:

  • 您无法将 Azure 磁盘连接到 Web 应用程序(因此无法将 SQLite 直接存储在 blob 中)。
  • 可以的,我发帖前测试过了。但是您不能将 SQLite 存储在 blob 中。
  • 不,我的意思是您不能将页面 blob 作为磁盘附加到 Web 应用程序中。是的,您可以访问存储。但这不是一回事。
  • 啊,是的,抱歉,误会了。
【解决方案2】:

我会说最好的位置是 site/wwwroot 文件夹中的 app_data 文件夹。如果文件夹不存在,则创建该文件夹。

【讨论】:

  • 对于 .NET 应用程序是的。但就我而言,我有一个 Node.js 应用程序,并且拥有 app_data 文件夹可能会令人困惑。
  • 这可能会令人困惑,但会达到您正在寻找的目的:-)
【解决方案3】:

在 Web 应用中,您的应用部署到 d:\home\site\wwwroot。这是您可以写入文件的区域。例如,ghost 部署将其 SQLite 数据库写入d:\home\site\wwwroot\content\data\ghost.db.(很容易看到这一点,如果您通过yourapp.scm.azurewebsites.net 打开 kudu 控制台):

此文件区域在您的网络应用实例之间共享。类似于 SMB 文件共享,但特定于 Web 应用程序(并且不同于 Azure 的文件服务)。

wwwroot 下的内容是持久的,除非你删除你的应用服务。放大/缩小会影响可用空间量。 (我不知道如果您缩小 并且较小的磁盘空间比您已经消耗的磁盘空间少,会发生什么。

【讨论】:

  • 如果您的应用程序将被缩放以使用少数机器怎么办?那不会创建几个 sqlite 数据库吗?
  • @titol - 否:Web 应用程序的实例具有共享存储区域。在这种情况下,它们都将引用同一个数据库。这与将数据存储在特定于实例的存储中不同。
猜你喜欢
  • 2010-10-17
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 2023-03-09
  • 2019-04-29
相关资源
最近更新 更多