我在一个节点上创建一个文件流,我担心文件访问,如果我从另一个节点启动流,该怎么办?从另一个节点开始流?
一样,在节点A,我没有启动它创建流:
stream= File.stream!(path)
Agent.start(fn -> %{"stream" => stream} end, name: {:global, :my_stream})
然后,在节点B,我开始流:
stream= Agent.get({:global, :my_stream}, fn %{"stream" => stream } -> stream end)
Task.start_link(Stream, :run, [stream])
请问流中查找文件在预期的节点A上?或者它会在节点B上查找它(考虑节点B是流的启动位置),因为如果这样做会失败,因为文件实际上存在于节点A上。
我应该关联哪个节点该文件存储?我会怎么做?我一定要吗?
有什么想法?
这是什么路径?如果是文件,则必须从两个节点同样可见。这在远程节点上不一定是正确的。 – GavinBrelstaff
'path'是文件(包括路径),我有每个节点都在一个单独的服务器上,所以,你认为我的方法不安全吗?或者至少,不保证工作? – simo
根据我在网络连接节点上使用'File.stream'的经验,您需要每个erlang-VM上的文件的本地副本,其路径名适用于每个文件系统/操作系统 - 否则它不会工作。 “文件”不是一个URL。 – GavinBrelstaff