Ubuntu開發環境 go語言操作FastDFS
下載包 :
go get github.com/weilaihui/fdfs_client
注意:(未做科學上網的朋友)我們的網路有防火牆,不能直接去google下載相應的包 ;
解決辦法:
- 在
~/workspace/go/src
目錄下面建立一個golang.org/x目錄 - 在golang.org/x目錄下載
git clone https://github.com/golang/crypto.git
git clone https://github.com/golang/sys.git - 執行下載:go get github.com/weilaihui/fdfs_client
go操作fastDFS的方法 :
- 匯入包 :import "github.com/weilaihui/fdfs_client"
- 指定配置檔案生成客戶端物件 :
client,_:=fdfs_client.NewFdfsClient("/etc/fdfs/client.conf")
- 通過client物件執行檔案上傳,上傳有兩種方法,一種是通過檔名,一種是通過位元組流 .
通過檔名上傳UploadByFilename ,引數是檔名(必須通過檔名能找到要上傳的檔案),返回值是fastDFS定義的一個結構體,包含組名和檔案ID兩部分內容:
fdfsresponse,err := client.UploadByFilename("flieName")
通過位元組流上傳UploadByBuffer,引數是位元組陣列和檔案字尾,返回值和通過檔名上傳一樣:
fdfsresponse,err := client.UploadByBuffer(fileBuffer,ext)
示例:
//建立檔案緩衝區
fBuffer := make([]byte,檔案大小)
//把檔案資料讀入到fBuffer中 f為檔案流指標
f.Read(fBuffer)
//獲取client物件
client := fdfs_client.NewFdfsClient("/etc/fdfs/client.conf")
//上傳
fdfsresponse,_:=client.UploadByBuffer(fileBuffer,ext)
//返回檔案ID 類似group1/M00/00/00/rBIK6VcaP0aARXXvAAHrUgHEviQ394.jpg
return fdfsresponse.RemoteFileId