2016-06-22 35 views
5

È necessario codificare il video utilizzando ffmpeg nel servizio Service Fabric quando ricevo un nuovo messaggio dalla coda del bus di servizio. Posso estrarre ffmpeg.exe dalle risorse ed eseguirlo, ma posso salvare i file video di input/output nel file system interno?Accesso al file system in Service Fabric

risposta

5

ho testato su cluster locale dal seguente codice:

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

L'output risultato è stato:

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 

Ma il percorso è stato cambiato sulla prossima corsa a C: \ SfDevCluster \ Data_App_Node_3 \ SampleAppType_App52 \ lavori \ testFile.txt.

quindi suppongo che la risposta è:

E 'possibile utilizzare file system locale, ma solo per i file temporanei. E penso che sia una buona pratica ripulire il sistema alla fine dell'iterazione.

+2

La tua conclusione è corretta. L'archiviazione temporanea dei file locali è il massimo che si possa ottenere con il file system locale perché i servizi non sono legati a nessuna specifica istanza VM. –

Problemi correlati