日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame資源管理-方法打包

本章節(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

簡要介紹:

  1. 通過?Pack*?/?Unpack*?方法可以實現(xiàn)對任意文件的打包/解包功能,可以打包到二進(jìn)制文件或者Go代碼文件。
  2. 資源管理由?Resource?對象實現(xiàn),可實現(xiàn)對打包內(nèi)容的添加,文件的檢索查找,以及對目錄的遍歷等功能。
  3. 資源文件由?File?對象實現(xiàn),該文件對象和?os.File?文件對象類似,并且該對象實現(xiàn)了?http.File?接口。
  4. ?ScanDir?用于針對于特定目錄下的文件/目錄檢索,并且支持遞歸檢索。
  5. ?ScanDirFile?用于針對于特定目錄下的文件檢索,并且支持遞歸檢索。
  6. 通過?Dump?方法在終端打印出?Resource?資源對象所有的文件列表,資源管理器中的文件分隔符號統(tǒng)一為?/?。
  7. 此外,?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()?打印出添加成功的文件列表查看資源文件是否添加成功。


當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrame資源管理-方法打包
網(wǎng)址分享:http://www.5511xx.com/article/djpsgig.html