github.com/optim-corp/cios-golang-sdk@v0.5.1/sdk/service/filestorage/file.go (about) 1 package srvfilestorage 2 3 import ( 4 "crypto/md5" 5 "encoding/base64" 6 _nethttp "net/http" 7 8 cnv "github.com/fcfcqloow/go-advance/convert" 9 "github.com/optim-corp/cios-golang-sdk/cios" 10 ciosctx "github.com/optim-corp/cios-golang-sdk/ctx" 11 "github.com/optim-corp/cios-golang-sdk/util" 12 ) 13 14 func MakeUploadFileOpts() cios.ApiUploadFileRequest { 15 return cios.ApiUploadFileRequest{} 16 } 17 18 func (self *CiosFileStorage) DownloadFile(ctx ciosctx.RequestCtx, bucketID string, nodeID string) ([]byte, *_nethttp.Response, error) { 19 if err := self.refresh(); err != nil { 20 return nil, nil, err 21 } 22 request := self.ApiClient.FileStorageApi.DownloadFile(self.withHost(ctx), bucketID).NodeId(nodeID) 23 f, httpResponse, err := request.Execute() 24 return []byte(f), httpResponse, err 25 } 26 func (self *CiosFileStorage) DownloadFileByKey(ctx ciosctx.RequestCtx, bucketID string, key string) ([]byte, *_nethttp.Response, error) { 27 if err := self.refresh(); err != nil { 28 return nil, nil, err 29 } 30 request := self.ApiClient.FileStorageApi.DownloadFile(self.withHost(ctx), bucketID).Key(key) 31 f, httpResponse, err := request.Execute() 32 return []byte(f), httpResponse, err 33 } 34 func (self *CiosFileStorage) UploadFile(ctx ciosctx.RequestCtx, bucketID string, body []byte, params cios.ApiUploadFileRequest) (*_nethttp.Response, error) { 35 if err := self.refresh(); err != nil { 36 return nil, err 37 } 38 params.Ctx = self.withHost(ctx) 39 params.ApiService = self.ApiClient.FileStorageApi 40 params.P_bucketId = bucketID 41 params.P_name = util.ToNil(params.P_name) 42 params.P_key = util.ToNil(params.P_key) 43 params.P_nodeId = util.ToNil(params.P_nodeId) 44 params.P_parentNodeId = util.ToNil(params.P_parentNodeId) 45 params.P_body = cnv.StrPtr(string(body)) 46 params.P_checksum = cnv.StrPtr(toCheckSum(body)) 47 _, httpResponse, err := params.Execute() 48 return httpResponse, err 49 } 50 51 func toCheckSum(byts []byte) string { 52 h := md5.New() 53 h.Write(byts) 54 return base64.StdEncoding.EncodeToString(h.Sum(nil)) 55 }