Azure App Services에서 로컬 파일 접근

Azure App Service는 웹/모바일/API 애플리케이션을 Azure에 구현하기에 최적인 PaaS 형태의 서비스이다. 윈도우가 설치된 가상컴퓨터와 비교하면 환경이 같으면서도 다른면이 있다. 그 중 한가지가 Web Root 말고 로컬 파일 즉, D:\home\abc.txt 같은 경로는 있는지 파일은 어떻게 올리는지가 금방 생각나지 않을 수 있다. 왜냐면 원격접속이나 SSH 접속이 없기 때문이다.

하지만 분명히 D:\home 디렉토리가 존재하고 파일을 넣고 뺄 수 있으며 그 파일을 웹 애플리케이션에서 읽어서 사용할 수 있다. 예를들어 Push Notification 구현에 사용할 인증서 파일 등을 로컬 경로에 저장하고 사용 가능하다.

Advanced Tool(Kudu)로 파일 관리

Azure Portal > App Service(Web App) > Advanced Tools > Go 를 누르면 웹기반의 관리 도구에 접속된다.

azure app service kudu
Console 접근이나 파일 다운로드 폴더 생성, 새 파일 생성 등을 할 수 있다. 파일 업로드 기능은 보이지 않는다. 파일 업로드는 FTP 로 접속하면 된다.

azure app service kudu 2

 

FTP 접속으로 파일 업로드

Azure App Services에 FTP 접속이 가능하다. 아이디와 주소는 아래 그림처럼 Overview에 나와있다. 아이디의 형태에 주의. 접속 비밀번호는 Deployment Credentials 에서 설정 및 변경이 가능하다.

azure app ftp

 

FileZilla 등의 FTP 클라이언트로 접속해서 파일을 올릴 수 있다.

azure app ftp filezilla

 

로컬 파일에 접근해서 내용을 읽어오는 코드를 C#, ASP .NET MVC로 두줄만 작성해서 테스트 해보았다. D:\home 경로에서 파일을 읽어 웹페이지에 표시할 수 있었다. 웹 애플리케이션에서 로컬 파일 접근이 가능하다. <2016-10-05 수정> 아래 코드는 파일이 그 위치에 있다는 걸 알기위한 샘플 코드임.

 public ActionResult About()
{
    string text = System.IO.File.ReadAllText(@"D:\home\FileOnWebApp.txt");
    return Content(text);
}