Можно ли писать в файловую систему на веб-узле azure?


Можно ли выполнить запись в файловую систему на веб-узле azure? например, обновление или установка плагинов / тем в Wordpress с панели мониторинга. AFAIK, это невозможно на Heroku, так что насчет веб-сайтов Azure?

5 32

5 ответов:

Конечно же можно писать на файловую систему сайтов Azure. Однако ваши права на запись ограничены корневой папкой вашего приложения. Итак, если вы используете ASP.NET, вы сможете писать в любом месте в пределах Server.MapPath("~/from_here_on"). Это означает, что вы сможете выполнять операции чтения/записи/удаления файлов, которые находятся в корневой папке вашего приложения и ниже. Если вы используете PHP, корневую папку можно получить из переменной окружения $_SERVER['DOCUMENT_ROOT'].

И веб-приложение не должно нуждаться в большем количестве преференции. Наверняка не сможет писать на папки операционной системы.

Просто в качестве дополнительной информации, если кто-то столкнется с ошибкой could not find a part of the path ... во время записи: убедитесь, что папка, в которую вы пишете, будет развернута. В моем случае это был пустой временный каталог, который был пропущен во время развертывания.

Вместо этого я предлагаю использовать контейнер BLOB-объектов для хранения постоянного содержимого, которое должно сохраняться независимо от повторной инициализации или обновления виртуальных машин.

Насколько я понимаю, вы можете писать на диск в веб-роли azure, но проблема в том, что веб-роль может иметь несколько экземпляров, поэтому размещение файла на любом узле, к которому вы подключаетесь, также не помещает его на другие узлы, и когда этот экземпляр повторно используется, он возвращается к исходному образу веб-роли, поэтому вы потеряете файл.

Однако можно совместно использовать диск между экземплярами узлов веб-ролей Azure, по крайней мере, в соответствии с этой статьей, и тогда вы можете установите виртуальную папку под веб-узлом, которая указывает на этот общий диск, и используйте ее для хранения носителей.

Http://blogs.msdn.com/b/windowsazurestorage/archive/2011/04/16/using-smb-to-share-a-windows-azure-drive-among-multiple-role-instances.aspx

Я сам еще не пробовал, но наткнулся на этот вопрос, когда искал, как это сделать.

Если вы спрашиваете о доступе к диску C:\ или D:\ на веб-сайте Azure, ответ будет отрицательным. У вас нет доступа к файловой системе таким образом на веб-сайтах Azure. У вас есть доступ к диску, если это веб-роль (облачные службы) или виртуальные машины.

Однако, как вы, возможно, уже знаете, вы можете использовать сам инструмент администрирования Wordpress для редактирования кода плагина.