本文整理汇总了Golang中qiniu/log.Error函数的典型用法代码示例。如果您正苦于以下问题:Golang Error函数的具体用法?Golang Error怎么用?Golang Error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Error函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ReqId
func ReqId(cmd string, params ...string) {
if len(params) == 1 {
reqId := params[0]
decodedBytes, err := base64.URLEncoding.DecodeString(reqId)
if err != nil || len(decodedBytes) < 4 {
log.Error("Invalid reqid", reqId, err)
return
}
newBytes := decodedBytes[4:]
newBytesLen := len(newBytes)
newStr := ""
for i := newBytesLen - 1; i >= 0; i-- {
newStr += fmt.Sprintf("%02X", newBytes[i])
}
unixNano, err := strconv.ParseInt(newStr, 16, 64)
if err != nil {
log.Error("Invalid reqid", reqId, err)
return
}
dstDate := time.Unix(0, unixNano)
fmt.Println(fmt.Sprintf("%04d-%02d-%02d/%02d-%02d", dstDate.Year(), dstDate.Month(), dstDate.Day(),
dstDate.Hour(), dstDate.Minute()))
} else {
CmdHelp(cmd)
}
}
示例2: Base64Decode
func Base64Decode(cmd string, params ...string) {
if len(params) == 1 || len(params) == 2 {
urlSafe := true
var err error
var dataToDecode string
if len(params) == 2 {
urlSafe, err = strconv.ParseBool(params[0])
if err != nil {
log.Error("Invalid bool value or <UrlSafe>, must true or false")
return
}
dataToDecode = params[1]
} else {
dataToDecode = params[0]
}
var dataDecoded []byte
if urlSafe {
dataDecoded, err = base64.URLEncoding.DecodeString(dataToDecode)
if err != nil {
log.Error("Failed to decode `", dataToDecode, "' in url safe mode.")
return
}
} else {
dataDecoded, err = base64.StdEncoding.DecodeString(dataToDecode)
if err != nil {
log.Error("Failed to decode `", dataToDecode, "' in standard mode.")
return
}
}
fmt.Println(string(dataDecoded))
} else {
CmdHelp(cmd)
}
}
示例3: Sync
func Sync(cmd string, params ...string) {
if len(params) == 3 || len(params) == 4 {
srcResUrl := params[0]
bucket := params[1]
key := params[2]
upHostIp := ""
if len(params) == 4 {
upHostIp = params[3]
}
gErr := accountS.Get()
if gErr != nil {
log.Error(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
//sync
tStart := time.Now()
hash, sErr := qshell.Sync(&mac, srcResUrl, bucket, key, upHostIp)
if sErr != nil {
log.Error(sErr)
return
}
log.Info(fmt.Sprintf("Sync %s => %s:%s (%s) Success, Duration: %s!",
srcResUrl, bucket, key, hash, time.Since(tStart)))
} else {
CmdHelp(cmd)
}
}
示例4: QiniuUpload
func QiniuUpload(cmd string, params ...string) {
if len(params) == 1 || len(params) == 2 {
var uploadConfigFile string
var threadCount int64
var err error
if len(params) == 2 {
threadCount, err = strconv.ParseInt(params[0], 10, 64)
if err != nil {
log.Error("Invalid <ThreadCount> value,", params[0])
return
}
uploadConfigFile = params[1]
} else {
uploadConfigFile = params[0]
}
//read upload config
fp, err := os.Open(uploadConfigFile)
if err != nil {
log.Errorf("Open upload config file `%s` error due to `%s`", uploadConfigFile, err)
return
}
defer fp.Close()
configData, err := ioutil.ReadAll(fp)
if err != nil {
log.Errorf("Read upload config file `%s` error due to `%s`", uploadConfigFile, err)
return
}
var uploadConfig qshell.UploadConfig
err = json.Unmarshal(configData, &uploadConfig)
if err != nil {
log.Errorf("Parse upload config file `%s` errror due to `%s`", uploadConfigFile, err)
return
}
if _, err := os.Stat(uploadConfig.SrcDir); err != nil {
log.Error("Upload config error for parameter `SrcDir`,", err)
return
}
//upload
if threadCount < qshell.MIN_UPLOAD_THREAD_COUNT || threadCount > qshell.MAX_UPLOAD_THREAD_COUNT {
fmt.Printf("Tip: you can set <ThreadCount> value between %d and %d to improve speed\n",
qshell.MIN_UPLOAD_THREAD_COUNT, qshell.MAX_UPLOAD_THREAD_COUNT)
if threadCount < qshell.MIN_UPLOAD_THREAD_COUNT {
threadCount = qshell.MIN_UPLOAD_THREAD_COUNT
} else if threadCount > qshell.MAX_UPLOAD_THREAD_COUNT {
threadCount = qshell.MAX_UPLOAD_THREAD_COUNT
}
}
qshell.QiniuUpload(int(threadCount), &uploadConfig)
} else {
CmdHelp(cmd)
}
}
示例5: ListBucket
func (this *AliListBucket) ListBucket(listResultFile string) (err error) {
//open result file
fp, openErr := os.Create(listResultFile)
if openErr != nil {
err = openErr
return
}
defer fp.Close()
bw := bufio.NewWriter(fp)
//list bucket by prefix
marker := ""
prefixLen := len(this.Prefix)
ossClient := oss.NewClient(this.DataCenter, this.AccessKeyId, this.AccessKeySecret, 0)
maxRetryTimes := 5
retryTimes := 1
log.Info("Listing the oss bucket...")
for {
lbr, lbrErr := ossClient.GetBucket(this.Bucket, this.Prefix, marker, "", "")
if lbrErr != nil {
err = lbrErr
log.Error("Parse list result error, ", "marker=[", marker, "]", lbrErr)
if retryTimes <= maxRetryTimes {
log.Debug("Retry marker=", marker, "] for ", retryTimes, "time...")
retryTimes += 1
continue
} else {
break
}
} else {
retryTimes = 1
}
for _, object := range lbr.Contents {
lmdTime, lmdPErr := time.Parse("2006-01-02T15:04:05.999Z", object.LastModified)
if lmdPErr != nil {
log.Error("Parse object last modified error, ", lmdPErr)
lmdTime = time.Now()
}
bw.WriteString(fmt.Sprintln(fmt.Sprintf("%s\t%d\t%d", object.Key[prefixLen:], object.Size, lmdTime.UnixNano()/100)))
}
if !lbr.IsTruncated {
break
}
marker = lbr.NextMarker
}
fErr := bw.Flush()
if fErr != nil {
log.Error("Write data to buffer writer failed", fErr)
err = fErr
return
}
return err
}
示例6: Cache
func (this *DirCache) Cache(cacheRootPath string, cacheResultFile string) (fileCount int64) {
if _, err := os.Stat(cacheResultFile); err != nil {
log.Debug(fmt.Sprintf("No cache file `%s' found, will create one", cacheResultFile))
} else {
os.Remove(cacheResultFile + ".old")
if rErr := os.Rename(cacheResultFile, cacheResultFile+".old"); rErr != nil {
log.Error(fmt.Sprintf("Unable to rename cache file, plz manually delete `%s' and `%s.old'",
cacheResultFile, cacheResultFile))
log.Error(rErr)
return
}
}
cacheResultFileH, err := os.OpenFile(cacheResultFile, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0666)
if err != nil {
log.Error(fmt.Sprintf("Failed to open cache file `%s'", cacheResultFile))
return
}
defer cacheResultFileH.Close()
bWriter := bufio.NewWriter(cacheResultFileH)
walkStart := time.Now()
log.Debug(fmt.Sprintf("Walk `%s' start from `%s'", cacheRootPath, walkStart.String()))
filepath.Walk(cacheRootPath, func(path string, fi os.FileInfo, err error) error {
var retErr error
//log.Debug(fmt.Sprintf("Walking through `%s'", cacheRootPath))
if err != nil {
retErr = err
} else {
if !fi.IsDir() {
relPath := strings.TrimPrefix(strings.TrimPrefix(path, cacheRootPath), string(os.PathSeparator))
fsize := fi.Size()
//Unit is 100ns
flmd := fi.ModTime().UnixNano() / 100
//log.Debug(fmt.Sprintf("Hit file `%s' size: `%d' mode time: `%d`", relPath, fsize, flmd))
fmeta := fmt.Sprintln(fmt.Sprintf("%s\t%d\t%d", relPath, fsize, flmd))
if _, err := bWriter.WriteString(fmeta); err != nil {
log.Error(fmt.Sprintf("Failed to write data `%s' to cache file", fmeta))
retErr = err
}
fileCount += 1
}
}
return retErr
})
if err := bWriter.Flush(); err != nil {
log.Error(fmt.Sprintf("Failed to flush to cache file `%s'", cacheResultFile))
}
walkEnd := time.Now()
log.Debug(fmt.Sprintf("Walk `%s' end at `%s'", cacheRootPath, walkEnd.String()))
log.Debug(fmt.Sprintf("Walk `%s' last for `%s'", cacheRootPath, time.Since(walkStart)))
return
}
示例7: downloadFile
func downloadFile(downConfig DownloadConfig, fileKey string) (err error) {
localFilePath := filepath.Join(downConfig.DestDir, fileKey)
ldx := strings.LastIndex(localFilePath, string(os.PathSeparator))
if ldx != -1 {
localFileDir := localFilePath[:ldx]
mkdirErr := os.MkdirAll(localFileDir, 0775)
if mkdirErr != nil {
err = mkdirErr
log.Error("MkdirAll failed for", localFileDir, mkdirErr.Error())
return
}
}
log.Info("Downloading", fileKey, "=>", localFilePath, "...")
downUrl := strings.Join([]string{downConfig.Domain, fileKey}, "/")
if downConfig.IsPrivate {
now := time.Now().Add(time.Second * 3600 * 24)
downUrl = fmt.Sprintf("%s?e=%d", downUrl, now.Unix())
mac := digest.Mac{downConfig.AccessKey, []byte(downConfig.SecretKey)}
token := digest.Sign(&mac, []byte(downUrl))
downUrl = fmt.Sprintf("%s&token=%s", downUrl, token)
}
resp, respErr := rpc.DefaultClient.Get(nil, downUrl)
if respErr != nil {
err = respErr
log.Error("Download", fileKey, "failed by url", downUrl, respErr.Error())
return
}
defer resp.Body.Close()
if resp.StatusCode == 200 {
localFp, openErr := os.Create(localFilePath)
if openErr != nil {
err = openErr
log.Error("Open local file", localFilePath, "failed", openErr.Error())
return
}
defer localFp.Close()
_, cpErr := io.Copy(localFp, resp.Body)
if cpErr != nil {
err = cpErr
log.Error("Download", fileKey, "failed", cpErr.Error())
return
}
} else {
err = errors.New("download failed")
log.Error("Download", fileKey, "failed by url", downUrl, resp.Status)
return
}
return
}
示例8: AliListBucket
func AliListBucket(cmd string, params ...string) {
if len(params) == 5 || len(params) == 6 {
dataCenter := params[0]
bucket := params[1]
accessKeyId := params[2]
accessKeySecret := params[3]
listBucketResultFile := ""
prefix := ""
if len(params) == 6 {
prefix = params[4]
listBucketResultFile = params[5]
} else {
listBucketResultFile = params[4]
}
aliListBucket := qshell.AliListBucket{
DataCenter: dataCenter,
Bucket: bucket,
AccessKeyId: accessKeyId,
AccessKeySecret: accessKeySecret,
Prefix: prefix,
}
err := aliListBucket.ListBucket(listBucketResultFile)
if err != nil {
log.Error("List bucket error,", err)
}
} else {
CmdHelp(cmd)
}
}
示例9: QiniuDownload
func QiniuDownload(cmd string, params ...string) {
if len(params) == 1 || len(params) == 2 {
var threadCount int64 = 5
var downConfig string
var err error
if len(params) == 1 {
downConfig = params[0]
} else {
threadCount, err = strconv.ParseInt(params[0], 10, 64)
if err != nil {
log.Error("Invalid value for <ThreadCount>", params[0])
return
}
downConfig = params[1]
}
if threadCount < qshell.MIN_DOWNLOAD_THREAD_COUNT ||
threadCount > qshell.MAX_DOWNLOAD_THREAD_COUNT {
log.Warn("<ThreadCount> can only between 1 and 100")
threadCount = qshell.MIN_DOWNLOAD_THREAD_COUNT
}
qshell.QiniuDownload(int(threadCount), downConfig)
} else {
CmdHelp(cmd)
}
}
示例10: Base64Encode
func Base64Encode(cmd string, params ...string) {
if len(params) == 1 || len(params) == 2 {
urlSafe := true
var err error
var dataToEncode string
if len(params) == 2 {
urlSafe, err = strconv.ParseBool(params[0])
if err != nil {
log.Error("Invalid bool value or <UrlSafe>, must true or false")
return
}
dataToEncode = params[1]
} else {
dataToEncode = params[0]
}
dataEncoded := ""
if urlSafe {
dataEncoded = base64.URLEncoding.EncodeToString([]byte(dataToEncode))
} else {
dataEncoded = base64.StdEncoding.EncodeToString([]byte(dataToEncode))
}
fmt.Println(dataEncoded)
} else {
CmdHelp(cmd)
}
}
示例11: QiniuUpload
func QiniuUpload(cmd string, params ...string) {
if len(params) == 1 || len(params) == 2 {
var uploadConfigFile string
var threadCount int64
var err error
if len(params) == 2 {
threadCount, err = strconv.ParseInt(params[0], 10, 64)
if err != nil {
log.Error("Invalid <ThreadCount> value,", params[0])
return
}
uploadConfigFile = params[1]
} else {
uploadConfigFile = params[0]
}
if threadCount < qshell.MIN_UPLOAD_THREAD_COUNT ||
threadCount > qshell.MAX_UPLOAD_THREAD_COUNT {
fmt.Println("You can set <ThreadCount> value between 1 and 100 to improve speed")
threadCount = qshell.MIN_UPLOAD_THREAD_COUNT
}
qshell.QiniuUpload(int(threadCount), uploadConfigFile)
} else {
CmdHelp(cmd)
}
}
示例12: Urldecode
func Urldecode(cmd string, params ...string) {
if len(params) == 1 {
dataToDecode := params[0]
dataDecoded, err := url.QueryUnescape(dataToDecode)
if err != nil {
log.Error("Failed to unescape data `", dataToDecode, "'")
} else {
fmt.Println(dataDecoded)
}
} else {
CmdHelp(cmd)
}
}
示例13: TimestampNano2Date
func TimestampNano2Date(cmd string, params ...string) {
if len(params) == 1 {
tns, err := strconv.ParseInt(params[0], 10, 64)
if err != nil {
log.Error("Invalid nano timestamp value,", params[0])
return
}
t := time.Unix(0, tns*100)
fmt.Println(t.String())
} else {
CmdHelp(cmd)
}
}
示例14: TimestampMilli2Date
func TimestampMilli2Date(cmd string, params ...string) {
if len(params) == 1 {
tms, err := strconv.ParseInt(params[0], 10, 64)
if err != nil {
log.Error("Invalid milli timestamp value,", params[0])
return
}
t := time.Unix(tms/1000, 0)
fmt.Println(t.String())
} else {
CmdHelp(cmd)
}
}
示例15: Unzip
func Unzip(cmd string, params ...string) {
if len(params) == 1 || len(params) == 2 {
zipFilePath := params[0]
unzipToDir, err := os.Getwd()
if err != nil {
log.Error("Get current work directory failed due to error", err)
return
}
if len(params) == 2 {
unzipToDir = params[1]
if _, statErr := os.Stat(unzipToDir); statErr != nil {
log.Error("Specified <UnzipToDir> is not a valid directory")
return
}
}
unzipErr := qshell.Unzip(zipFilePath, unzipToDir)
if unzipErr != nil {
log.Error("Unzip file failed due to error", unzipErr)
}
} else {
CmdHelp(cmd)
}
}