GoFrame 資源管理-基本介紹

2022-04-07 10:21 更新

基本介紹

資源管理是指可以將任意文件/目錄打包為Golang源碼文件,并且編譯到可執(zhí)行文件中,隨著可執(zhí)行文件發(fā)布。

資源文件在程序啟動時將會自解壓釋放到內(nèi)存中,供程序只讀訪問,可以將它當(dāng)做基于內(nèi)存的文件管理器。同時,?GoFrame?的資源管理特性也支持將文件/目錄打包為獨立的二進制資源文件使用。由于資源文件在程序運行時是基于內(nèi)存的文件操作,沒有磁盤?IO?的開銷,因此其文件操作效率非常高。

使用方式:

import "github.com/gogf/gf/v2/os/gres"

接口文檔:

https://pkg.go.dev/github.com/gogf/gf/v2/os/gres

組件特性

gres資源管理組件具有以下顯著特點: 

  • 可將任意的文件/目錄打包為Go文件,支持自定義加解密。
  • 打包的Go文件/資源文件自動壓縮,常見?css?/?js?等文件可達(dá)到50~90%的壓縮率。
  • 支持對打包為Go文件的資源內(nèi)容,方便地導(dǎo)出到本地文件系統(tǒng)。
  • 資源管理器內(nèi)容完全基于內(nèi)存,并且內(nèi)容只讀,無法動態(tài)修改。
  • 資源管理器默認(rèn)整合支持到了?WebServer?、配置管理、模板引擎模塊中。
  • 任意文件如網(wǎng)站靜態(tài)文件、配置文件等可編譯到二進制文件中,也可編譯到發(fā)布的可執(zhí)行文件中。
  • 開發(fā)者可只需編譯發(fā)布一個可執(zhí)行文件,除了方便了軟件分發(fā),也為保護軟件知識產(chǎn)權(quán)內(nèi)容提供了可能。

與embed.FS的比較

從Golang v1.16版本開始官方提供了靜態(tài)文件嵌入的?embed.FS?特性,整體底層設(shè)計和?gres?組件類似,壓縮比、執(zhí)行效率也差不多,只是在使用設(shè)計和工程化管理上有比較大的差別。?GoFrame?資源管理組件的功能更加豐富,框架的核心組件已經(jīng)完全對接了?gres?資源管理組件,并且在?GoFrame?提供的標(biāo)準(zhǔn)的工程化管理下能夠做到對開發(fā)者無感知地使用資源管理特性,具體可以參考章節(jié) 資源管理-最佳實踐 。

未來?GoFrame?基礎(chǔ)框架底層不會考慮內(nèi)置對?embed.FS?組件的支持,?embed.FS?與?gres?組件可以獨立使用互不影響。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號