使用golang将文件附加到文件,其中文件位于NFS连接的卷上

使用golang将文件附加到文件,其中文件位于NFS连接的卷上,go,nfs,Go,Nfs,作为大型文件上载功能的一部分 我们使用以下命令将一个字节的“块”写入“路径”处的文件。这在本地文件系统上运行良好。每个区块都正确写入“偏移量” f, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, os.ModeAppend) n, err := f.WriteAt(bytes, offset) 但是,在NFS连接的存储上,字节写入文件的开头,而不是请求的“偏移量” f, err := os.OpenFile(path, os.O_APPEN

作为大型文件上载功能的一部分

我们使用以下命令将一个字节的“块”写入“路径”处的文件。这在本地文件系统上运行良好。每个区块都正确写入“偏移量”

f, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
n, err := f.WriteAt(bytes, offset)
但是,在NFS连接的存储上,字节写入文件的开头,而不是请求的“偏移量”

f, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
n, err := f.WriteAt(bytes, offset)

即使进程似乎无法通过NFS获得文件锁。是否有一种变通方法可以用来在“偏移量”处追加到文件?

如果要在特定偏移量处写入,为什么要使用
O\u append
O_APPEND
意味着在任何
写入之前将偏移量设置为文件的当前端,而
WriteAt
使用
pwrite
(可以实现为
lseek
+
写入
以特定偏移量写入。这里有一个逻辑冲突,根据系统的不同会得到不同的解决。谢谢你的评论。我将尝试不同的模式。好的!你说得对,吉姆。请随意提交我可以选择的答案。当使用:fd,err:=os.OpenFile(path,os.O_WRONLY,0660)时,我能够在“偏移量”处正确写入