新聞中心
本章節(jié)的示例演示打包/解包的同時也演示了對數(shù)據(jù)的加密/解密。大部分業(yè)務(wù)項目其實并不需要加密/解密操作,因此直接使用工具打包即可。

創(chuàng)新互聯(lián)是一家專業(yè)提供興山企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、做網(wǎng)站、HTML5、小程序制作等業(yè)務(wù)。10年已為興山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
在上一章節(jié)我們介紹通過?gf?工具鏈進(jìn)行文件/目錄打包,并生成GO文件編譯到可執(zhí)行文件中。在本章節(jié)中,我們介紹資源管理中涉及到的方法,并通過一個打包/解包二進(jìn)制資源文件的示例,介紹這些方法實現(xiàn)自定義的打包/解包功能。同時,我們也演示了如何通過自定義加解密來保護(hù)我們的資源文件內(nèi)容。
接口文檔:
https://pkg.go.dev/github.com/gogf/gf/v2/os/gres
簡要介紹:
- 通過?
Pack*?/?Unpack*?方法可以實現(xiàn)對任意文件的打包/解包功能,可以打包到二進(jìn)制文件或者Go代碼文件。 - 資源管理由?
Resource?對象實現(xiàn),可實現(xiàn)對打包內(nèi)容的添加,文件的檢索查找,以及對目錄的遍歷等功能。 - 資源文件由?
File?對象實現(xiàn),該文件對象和?os.File?文件對象類似,并且該對象實現(xiàn)了?http.File?接口。 - ?
ScanDir?用于針對于特定目錄下的文件/目錄檢索,并且支持遞歸檢索。 - ?
ScanDirFile?用于針對于特定目錄下的文件檢索,并且支持遞歸檢索。 - 通過?
Dump?方法在終端打印出?Resource?資源對象所有的文件列表,資源管理器中的文件分隔符號統(tǒng)一為?/?。 - 此外,?
gres?資源管理模塊提供了默認(rèn)的?Resource?對象,并通過包方法提供了對該默認(rèn)對象的操作。
自定義打包示例
我們將項目根目錄下的?public?和?config?目錄打包為?data.bin?二進(jìn)制文件,并通過?gaes?加密算法對生成的二進(jìn)制內(nèi)容進(jìn)行加密。
package main
import (
"github.com/gogf/gf/v2/crypto/gaes"
"github.com/gogf/gf/v2/os/gfile"
"github.com/gogf/gf/v2/os/gres"
)
var (
CryptoKey = []byte("x76cgqt36i9c863bzmotuf8626dxiwu0")
)
func main() {
binContent, err := gres.Pack("public,config")
if err != nil {
panic(err)
}
binContent, err = gaes.Encrypt(binContent, CryptoKey)
if err != nil {
panic(err)
}
if err := gfile.PutBytes("data.bin", binContent); err != nil {
panic(err)
}
}
自定義解包示例
我們使用將剛才打包生成的?data.bin?,需要解密和解包兩步操作。
package main
import (
"github.com/gogf/gf/v2/crypto/gaes"
"github.com/gogf/gf/v2/os/gfile"
"github.com/gogf/gf/v2/os/gres"
)
var (
CryptoKey = []byte("x76cgqt36i9c863bzmotuf8626dxiwu0")
)
func main() {
binContent := gfile.GetBytes("data.bin")
binContent, err := gaes.Decrypt(binContent, CryptoKey)
if err != nil {
panic(err)
}
if err := gres.Add(binContent); err != nil {
panic(err)
}
gres.Dump()
}最后,我們使用?gres.Dump()?打印出添加成功的文件列表查看資源文件是否添加成功。
新聞標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame資源管理-方法打包
文章來源:http://www.fisionsoft.com.cn/article/djpsgig.html


咨詢
建站咨詢
