我可以写入 azure 网站上的文件系统吗?例如从仪表板更新或安装 Wordpress 中的插件/主题。AFAIK,在 Heroku 上是不可能的,那么 Azure 网站呢?
6 回答
当然可以在 Azure 网站的文件系统上进行写入。但是,您的写入权限仅限于应用程序的根文件夹。因此,如果您使用 ASP.NET,您将能够在Server.MapPath("~/from_here_on")
. 这意味着您应该能够对位于应用程序根文件夹及以下的文件执行读/写/删除操作。如果您使用 PHP,则可以从$_SERVER['DOCUMENT_ROOT']
环境变量中获取根文件夹。
Web 应用程序不需要更多权限。肯定不能在操作系统文件夹上写。
如果有人在写入时遇到错误,就像附加信息一样could not find a part of the path ...
:确保您正在写入的文件夹已部署。在我的情况下,它是一个空的临时目录,在部署过程中被跳过。
我提议使用 blobs 容器来存储必须持久化的永久内容,无论虚拟机重新初始化或升级如何。
据我了解,您可以在 azure web 角色上写入驱动器,但问题是 web 角色可以有多个实例,因此将文件放在您正在连接的任何节点上也不会将其放在其他节点上并且当该实例被回收时,它会返回到 Web 角色的原始图像,因此您将丢失文件。
但是,至少可以根据本文在 Azure Web 角色节点的实例之间共享一个驱动器,然后您可以在网站下设置一个指向该共享驱动器的虚拟文件夹并将其用于媒体存储。
我自己还没有尝试过,但是在搜索如何做到这一点时遇到了这个问题。
如果您在 Azure 网站上询问 C:\ 驱动器或 D:\ 驱动器访问权限,答案是否定的。您无法在 Azure 网站上以这种方式访问文件系统。如果它是 Web 角色(云服务)或虚拟机,您确实可以访问磁盘。
但是,您可能已经知道,您可以使用 Wordpress 管理工具本身来编辑插件代码。