【发布时间】:2012-10-09 11:17:46
【问题描述】:
我可以写入 azure 网站上的文件系统吗?例如从仪表板更新或安装 Wordpress 中的插件/主题。 AFAIK,这在 Heroku 上是不可能的,那么 Azure 网站呢?
【问题讨论】:
-
你能解释一下为什么我的回答被否决了吗?我已经明确提到您无法像传统上那样访问 C: 或 D:。
标签: azure filesystems azure-web-app-service
我可以写入 azure 网站上的文件系统吗?例如从仪表板更新或安装 Wordpress 中的插件/主题。 AFAIK,这在 Heroku 上是不可能的,那么 Azure 网站呢?
【问题讨论】:
标签: azure filesystems azure-web-app-service
当然可以在 Azure 网站的文件系统上进行写入。但是,您的写入权限仅限于应用程序的根文件夹。因此,如果您使用 ASP.NET,您将能够在 Server.MapPath("~/from_here_on") 中的任何位置编写代码。这意味着您应该能够对位于应用程序根文件夹及以下的文件执行读/写/删除操作。如果你使用PHP,根目录可以从$_SERVER['DOCUMENT_ROOT']环境变量中获取。
Web 应用程序不需要更多权限。肯定不能在操作系统文件夹上写。
【讨论】:
non-public - 根本不由 Web 服务器提供服务。您可以使用 Apache 的 .htaccess 来执行此操作,也可以使用 IIS 的 web.config 来执行此操作。如果你不能指示你的框架在哪里写它的 temp,那么它的设计就会出现严重问题。
如果有人在写入时遇到could not find a part of the path ... 错误,作为附加信息:确保您正在写入的文件夹已部署。在我的情况下,它是一个空的临时目录,在部署过程中被跳过。
【讨论】:
我提议使用 blob 容器来存储永久内容,无论虚拟机重新初始化或升级如何,这些内容都必须保留。
【讨论】:
据我了解,您可以在 azure web 角色上写入驱动器,但问题是 web 角色可以有多个实例,因此将文件放在您要连接的任何节点上也不会放在上面其他节点,当该实例被回收时,它会返回到网络角色的原始图像,因此您会丢失文件。
但是,至少根据本文,可以在 Azure Web 角色节点的实例之间共享驱动器,然后您可以在网站下方设置一个虚拟文件夹,指向该共享驱动器并将其用于媒体存储。
我自己还没有尝试过,但是在搜索如何做到这一点时遇到了这个问题。
【讨论】:
You can write to the HOME environment variable location (%HOME% / $HOME) 在 Azure 应用服务上。您可以使用 Kudu 或应用服务的控制台 cd 进入该目录并进行探索。
【讨论】:
如果您在 Azure 网站上询问 C:\ 驱动器或 D:\ 驱动器访问权限,答案是否定的。您无法在 Azure 网站上以这种方式访问文件系统。如果磁盘是 Web 角色(云服务)或虚拟机,您确实可以访问磁盘。
但是,您可能已经知道,您可以使用 Wordpress 管理工具本身来编辑插件代码。
【讨论】: