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
5
A
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.
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. –