2016-06-22 10 views
5

Potrzebuję kodować wideo za pomocą ffmpeg w usłudze usługi serwisowej, gdy otrzymuję nową wiadomość z kolejki magistrali usług. Mogę wyodrębnić plik ffmpeg.exe z zasobów i uruchomić go, ale czy mogę zapisać pliki wideo wejścia/wyjścia w wewnętrznym systemie plików?Dostęp do systemu plików w usłudze Fabric

Odpowiedz

5

Testowałem go na lokalnym klastrze przez następujący kod:

protected override async Task RunAsync(CancellationToken cancellationToken) 
    { 
     while (true) 
     { 
      cancellationToken.ThrowIfCancellationRequested(); 

      string filename = "testFile.txt"; 
      File.AppendAllText(filename, "test. "); 

      string content = File.ReadAllText(filename); 
      System.Diagnostics.Trace.WriteLine("Content:" + content); 
      System.Diagnostics.Trace.WriteLine(new FileInfo(filename).FullName); 

      await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken); 
     } 
    } 

Wyjście wynik był następujący:

Content:test. 
C:\SfDevCluster\Data\_App\_Node_3\SampleAppType_App51\work\testFile.txt 
Content:test. test. 
C:\SfDevCluster\Data\_App\_Node_3\SampleAppType_App51\work\testFile.txt 
Content:test. test. test. 
C:\SfDevCluster\Data\_App\_Node_3\SampleAppType_App51\work\testFile.txt 

Ale ścieżka została zmieniona na następnym biegu do katalogu C: \ SfDevCluster \ Data_App_Node_3 \ SampleAppType_App52 \ work \ testFile.txt.

Więc przypuszczam, że odpowiedź brzmi:

Jest to możliwe do wykorzystania lokalnego systemu plików, ale tylko dla plików tymczasowych. I myślę, że dobrą praktyką jest czyszczenie systemu po zakończeniu iteracji.

+2

Twój wniosek jest poprawny. Tymczasowe lokalne przechowywanie plików jest tak daleko, jak chcesz, z lokalnym systemem plików, ponieważ usługi nie są powiązane z żadną konkretną instancją maszyny wirtualnej. –