2016-06-22 6 views
5

Ich muss Video mit Ffmpeg in Service Fabric Dienst encodieren, wenn ich neue Nachricht von Service Bus-Warteschlange erhalten. Ich kann ffmpeg.exe aus Ressourcen extrahieren und ausführen, aber kann ich Input/Output-Videodateien im internen Dateisystem speichern?Zugriff auf Dateisystem in Service Fabric

Antwort

5

ich es auf lokalen Cluster durch folgenden Code getestet:

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); 
     } 
    } 

Das Ergebnis Ausgang war:

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 

Aber Pfad wurde auf den nächsten Lauf zu C geändert: \ SfDevCluster \ Data_App_Node_3 \ SampleAppType_App52 \ work \ testFile.txt.

Also nehme ich die Antwort: aber nur für temporäre Dateien

Es ist möglich, lokales Dateisystem zu verwenden. Und ich denke, es ist eine gute Methode, das System am Ende der Iteration zu bereinigen.

+2

Ihre Schlussfolgerung ist richtig. Der temporäre lokale Dateispeicher ist so weit entfernt, wie Sie mit dem lokalen Dateisystem arbeiten möchten, da Dienste nicht an eine bestimmte VM-Instanz gebunden sind. –