我正在使用go.rice将嵌入式文件系统存储在Go二进制文件中。这非常适合推送到生产环境(即单个二进制分发),并将所有“文件”访问权限保留在内存中。
我遇到的问题是第三方库,这些库旨在通过传入文件名字符串直接从文件系统中加载外部文件(而不是使我能够抽象文件加载的通用Reader接口)
有什么方法可以创建可与Go的标准库os / io工具一起使用的内存文件系统,从而绕过将资源存储在二进制文件之外的需求吗?
我可以将字节转储到tmp文件中,将其传递给libs,然后删除...但是看起来很乱。如果可能,希望保留在内存中的访问权限。
不一定非要go.rice ...任何其他嵌入机制来保持这种清晰/单一的文件分发?
对不起,那是不可能的。该os
软件包是平台操作系统API之上的一个薄包装。您可以执行以下操作:
go.rice
在您的二进制文件中创建嵌入式文件系统。os.TempDir()
用来找到一个合适的位置来放置您的临时目录)或者,您可以要求第三方代码的开发人员包括一个额外的API,该API接受一个io.Reader
代替文件名的名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句