Service Fabric中的访问文件系统

Yur*_*hov 5 azure azure-service-fabric

当我从Service Bus队列收到新消息时,我需要在Service Fabric服务中使用ffmpeg对视频进行编码.我可以从资源中提取ffmpeg.exe并运行它但是我可以在内部文件系统中保存输入/输出视频文件吗?

Yur*_*hov 5

我通过以下代码在本地群集上测试它:

    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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

结果输出是:

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
Run Code Online (Sandbox Code Playgroud)

但是在下次运行时路径已更改为C:\ SfDevCluster\Data_App_Node_3\SampleAppType_App52\work\testFile.txt.

所以我想答案是:

可以使用本地文件系统,但仅用于临时文件.我认为在迭代结束时清理系统是一个很好的做法.

  • 你的结论是正确的.临时本地文件存储是您希望与本地文件系统一起使用的,因为服务不依赖于任何特定的VM实例. (3认同)