2017-03-07 72 views
0

我有一個Azure應用服務,託管一個WordPress站點。我想編寫一個控制檯應用程序,它將從網站(文件存儲)複製文件並將其粘貼到部署插槽中。所有在線資源都討論了連接文件存儲的「訪問密鑰」,但我在應用服務門戶中沒有看到類似的內容。我可以使用部署憑證或Web部署憑證來訪問這些文件嗎?Azure應用服務訪問文件存儲使用webjob複製內容

+0

那麼,如果FTP對你來說可以,那麼這些證書就可以直接作爲FTP證書使用,讓你訪問文件系統。 – juunas

+0

根據您的描述,我無法清楚地瞭解網站(文件存儲)。你的意思是你將文件存儲在一個文件存儲共享(azure存儲服務)中,或者只存儲在應用程序文件系統的共享路徑中?你如何存儲文件,通過你的應用程序或其他方式上傳?這兩件事將決定你的webjobtigger將使用。訪問密鑰用於訪問Azure存儲服務,如果要訪問應用程序服務中的文件系統,則可以使用ftp憑證。 –

+0

我不是隻使用文件系統的文件存儲,我想創建一個webjob來訪問文件系統中的文件並將文件複製到一個插槽中。 –

回答

3

根據您的描述,我建議您可以使用webjob的文件tigger來實現您的要求。

鏈接:webjob-extension

您可以使用文件跳跳虎看在你的系統文件路徑的文件的變化,你會發現部署插槽的FTP憑據,然後用它來文件形式生產文件夾上傳到部署插槽由webjob的擴展包。

更多細節,你可以參考遵循圖像和代碼:

1.Find ftp的憑證和設定的密碼

enter image description here

設置用戶名和密碼

enter image description here

2.從nugget包管理器安裝Microsoft.Azure.WebJobs.Extensions並寫入t他的webjob方法。

代碼象下面這樣:

注意:默認文件路徑爲d:/家庭/數據,如果你的網站文件夾內的文件,你需要如下改變其路徑。

static void Main() 
    { 
     var config = new JobHostConfiguration(); 
     FilesConfiguration filesConfig = new FilesConfiguration(); 
     string home = Environment.GetEnvironmentVariable("HOME"); 
     if (!string.IsNullOrEmpty(home)) 
     { 
      filesConfig.RootPath = Path.Combine(home, "site"); 
     } 
     config.UseFiles(filesConfig); 
     var host = new JobHost(config); 
     // The following code ensures that the WebJob will be running continuously 
     host.RunAndBlock(); 
    } 

功能:

public static void ImportFile(
       [FileTrigger(@"wwwroot\doc\{name}", "*.*", WatcherChangeTypes.Created | WatcherChangeTypes.Changed)] Stream file, 
      FileSystemEventArgs fileTrigger, 
      TextWriter log) 
     { 
      log.WriteLine(string.Format("Processed input file '{0}'!", fileTrigger.Name)); 
      FtpWebRequest request = (FtpWebRequest)WebRequest.Create(string.Format("ftp://yourftpurl.ftp.azurewebsites.windows.net/site/wwwroot/doc/{0}", fileTrigger.Name)); 
      request.Method = WebRequestMethods.Ftp.UploadFile; 
      request.Credentials = new NetworkCredential(@"username", "password"); 

      Stream requestStream = request.GetRequestStream(); 
      file.CopyTo(requestStream); 
      requestStream.Close(); 
      FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 
      log.WriteLine("Upload File Complete, status {0}", response.StatusDescription); 
      response.Close(); 
     } 

結果:

如果添加文件到生產的doc文件夾,網頁作業將它複製到deploymeny_solt的doc文件夾中。

enter image description here

0

您可以使用 「天青網站複製」 推廣。一個插槽就像另一個天藍色的應用程序服務,所以它應該在插槽之間進行復制。

在你的部署插槽,你想要的一切複製到,下載通過單擊總覽標籤發佈設置「獲取發佈配置文件」

在你的應用程序服務的生產槽去擴展,並添加站點複製擴展。然後在安裝之後,點擊它並點擊「瀏覽」。這將使用配置選項打開一個新窗口。

在配置窗口中,上傳發佈設置文件。

相關問題