本文整理汇总了Golang中qiniu/api/v6/rs.NewMac函数的典型用法代码示例。如果您正苦于以下问题:Golang NewMac函数的具体用法?Golang NewMac怎么用?Golang NewMac使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewMac函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Chgm
func Chgm(cmd string, params ...string) {
if len(params) == 3 {
bucket := params[0]
key := params[1]
newMimeType := params[2]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
err := client.ChangeMime(nil, bucket, key, newMimeType)
if err != nil {
if v, ok := err.(*rpc.ErrorInfo); ok {
fmt.Println("Change mimetype error,", v.Code, v.Err)
} else {
fmt.Println("Change mimetype error,", err.Error())
}
} else {
fmt.Println("Change mimetype done!")
}
} else {
CmdHelp(cmd)
}
}
示例2: Copy
func Copy(cmd string, params ...string) {
if len(params) == 3 || len(params) == 4 {
srcBucket := params[0]
srcKey := params[1]
destBucket := params[2]
destKey := srcKey
if len(params) == 4 {
destKey = params[3]
}
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
err := client.Copy(nil, srcBucket, srcKey, destBucket, destKey)
if err != nil {
if v, ok := err.(*rpc.ErrorInfo); ok {
fmt.Println("Copy error,", v.Code, v.Err)
} else {
fmt.Println("Copy error,", err.Error())
}
} else {
fmt.Println("Copy done!")
}
} else {
CmdHelp(cmd)
}
}
示例3: Stat
func Stat(cmd string, params ...string) {
if len(params) == 2 {
bucket := params[0]
key := params[1]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
entry, err := client.Stat(nil, bucket, key)
if err != nil {
if v, ok := err.(*rpc.ErrorInfo); ok {
fmt.Println("Stat error,", v.Code, v.Err)
} else {
fmt.Println("Stat error,", err.Error())
}
} else {
printStat(bucket, key, entry)
}
} else {
CmdHelp(cmd)
}
}
示例4: GetBuckets
func GetBuckets(mac *digest.Mac) (buckets []string, err error) {
buckets = make([]string, 0)
client := rs.NewMac(mac)
bucketsUri := fmt.Sprintf("%s/buckets", conf.RS_HOST)
err = client.Conn.Call(nil, &buckets, bucketsUri)
return
}
示例5: Move
func Move(cmd string, params ...string) {
if len(params) == 4 {
srcBucket := params[0]
srcKey := params[1]
destBucket := params[2]
destKey := params[3]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
err := client.Move(nil, srcBucket, srcKey, destBucket, destKey)
if err != nil {
fmt.Println("Move error,", err)
} else {
fmt.Println("Done!")
}
} else {
CmdHelp(cmd)
}
}
示例6: Delete
func Delete(cmd string, params ...string) {
if len(params) == 2 {
bucket := params[0]
key := params[1]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
err := client.Delete(nil, bucket, key)
if err != nil {
fmt.Println("Delete error,", err.Error())
} else {
fmt.Println("Done!")
}
} else {
CmdHelp(cmd)
}
}
示例7: GetDomainsOfBucket
func GetDomainsOfBucket(mac *digest.Mac, bucket string) (domains []string, err error) {
domains = make([]string, 0)
client := rs.NewMac(mac)
getDomainsUrl := fmt.Sprintf("%s/v6/domain/list", DEFAULT_API_HOST)
postData := map[string][]string{
"tbl": []string{bucket},
}
err = client.Conn.CallWithForm(nil, &domains, getDomainsUrl, postData)
return
}
示例8: Fetch
func Fetch(mac *digest.Mac, remoteResUrl, bucket, key string) (fetchResult FetchResult, err error) {
client := rs.NewMac(mac)
entry := bucket
if key != "" {
entry += ":" + key
}
fetchUri := fmt.Sprintf("/fetch/%s/to/%s",
base64.URLEncoding.EncodeToString([]byte(remoteResUrl)),
base64.URLEncoding.EncodeToString([]byte(entry)))
err = client.Conn.Call(nil, &fetchResult, conf.IO_HOST+fetchUri)
return
}
示例9: BatchStat
func BatchStat(cmd string, params ...string) {
if len(params) == 2 {
bucket := params[0]
keyListFile := params[1]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
fp, err := os.Open(keyListFile)
if err != nil {
fmt.Println("Open key list file error", err)
return
}
defer fp.Close()
scanner := bufio.NewScanner(fp)
scanner.Split(bufio.ScanLines)
entries := make([]rs.EntryPath, 0)
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
items := strings.Split(line, "\t")
if len(items) > 0 {
key := items[0]
if key != "" {
entry := rs.EntryPath{
bucket, key,
}
entries = append(entries, entry)
}
}
//check 1000 limit
if len(entries) == BATCH_ALLOW_MAX {
batchStat(client, entries)
//reset slice
entries = make([]rs.EntryPath, 0)
}
}
//stat the last batch
if len(entries) > 0 {
batchStat(client, entries)
}
} else {
CmdHelp(cmd)
}
}
示例10: BatchRefresh
func BatchRefresh(cmd string, params ...string) {
if len(params) == 1 {
urlListFile := params[0]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
fp, err := os.Open(urlListFile)
if err != nil {
fmt.Println("Open url list file error", err)
return
}
defer fp.Close()
scanner := bufio.NewScanner(fp)
scanner.Split(bufio.ScanLines)
urlsToRefresh := make([]string, 0, 10)
for scanner.Scan() {
url := strings.TrimSpace(scanner.Text())
if url == "" {
continue
}
urlsToRefresh = append(urlsToRefresh, url)
if len(urlsToRefresh) == BATCH_CDN_REFRESH_ALLOW_MAX {
batchRefresh(&client, urlsToRefresh)
urlsToRefresh = make([]string, 0, 10)
}
}
if len(urlsToRefresh) > 0 {
batchRefresh(&client, urlsToRefresh)
}
fmt.Println("All refresh requests sent!")
} else {
CmdHelp(cmd)
}
}
示例11: M3u8Delete
func M3u8Delete(cmd string, params ...string) {
if len(params) == 2 || len(params) == 3 {
bucket := params[0]
m3u8Key := params[1]
isPrivate := false
if len(params) == 3 {
isPrivate, _ = strconv.ParseBool(params[2])
}
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
m3u8FileList, err := qshell.M3u8FileList(&mac, bucket, m3u8Key, isPrivate)
if err != nil {
fmt.Println(err)
return
}
client := rs.NewMac(&mac)
entryCnt := len(m3u8FileList)
if entryCnt == 0 {
fmt.Println("no m3u8 slices found")
return
}
if entryCnt <= BATCH_ALLOW_MAX {
batchDelete(client, m3u8FileList)
} else {
batchCnt := entryCnt / BATCH_ALLOW_MAX
for i := 0; i < batchCnt; i++ {
end := (i + 1) * BATCH_ALLOW_MAX
if end > entryCnt {
end = entryCnt
}
entriesToDelete := m3u8FileList[i*BATCH_ALLOW_MAX : end]
batchDelete(client, entriesToDelete)
}
}
fmt.Println("All deleted!")
} else {
CmdHelp(cmd)
}
}
示例12: checkExists
func checkExists(mac *digest.Mac, bucket, key string) (exists bool, err error) {
client := rs.NewMac(mac)
entry, sErr := client.Stat(nil, bucket, key)
if sErr != nil {
if v, ok := sErr.(*rpc.ErrorInfo); !ok {
err = errors.New(fmt.Sprintf("Check file exists error, %s", sErr.Error()))
return
} else {
if v.Code != 612 {
err = errors.New(fmt.Sprintf("Check file exists error, %s", v.Err))
return
} else {
exists = false
return
}
}
}
if entry.Hash != "" {
exists = true
}
return
}
示例13: BatchCopy
func BatchCopy(cmd string, params ...string) {
//confirm
rcode := CreateRandString(6)
if rcode == "" {
fmt.Println("Create confirm code failed")
return
}
rcode2 := ""
if runtime.GOOS == "windows" {
fmt.Print(fmt.Sprintf("<DANGER> Input %s to confirm operation: ", rcode))
} else {
fmt.Print(fmt.Sprintf("\033[31m<DANGER>\033[0m Input \033[32m%s\033[0m to confirm operation: ", rcode))
}
fmt.Scanln(&rcode2)
if rcode != rcode2 {
fmt.Println("Task quit!")
return
}
if len(params) == 3 {
srcBucket := params[0]
destBucket := params[1]
srcDestKeyMapFile := params[2]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
fp, err := os.Open(srcDestKeyMapFile)
if err != nil {
fmt.Println("Open src dest key map file error")
return
}
defer fp.Close()
scanner := bufio.NewScanner(fp)
scanner.Split(bufio.ScanLines)
entries := make([]qshell.CopyEntryPath, 0)
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
items := strings.Split(line, "\t")
if len(items) == 1 || len(items) == 2 {
srcKey := items[0]
destKey := srcKey
if len(items) == 2 {
destKey = items[1]
}
if srcKey != "" && destKey != "" {
entry := qshell.CopyEntryPath{srcBucket, destBucket, srcKey, destKey}
entries = append(entries, entry)
}
}
if len(entries) == BATCH_ALLOW_MAX {
batchCopy(client, entries)
entries = make([]qshell.CopyEntryPath, 0)
}
}
if len(entries) > 0 {
batchCopy(client, entries)
}
fmt.Println("All Copyed!")
} else {
CmdHelp(cmd)
}
}
示例14: BatchDelete
func BatchDelete(cmd string, params ...string) {
//confirm
rcode := CreateRandString(6)
if rcode == "" {
fmt.Println("Create confirm code failed")
return
}
rcode2 := ""
if runtime.GOOS == "windows" {
fmt.Print(fmt.Sprintf("<DANGER> Input %s to confirm operation: ", rcode))
} else {
fmt.Print(fmt.Sprintf("\033[31m<DANGER>\033[0m Input \033[32m%s\033[0m to confirm operation: ", rcode))
}
fmt.Scanln(&rcode2)
if rcode != rcode2 {
fmt.Println("Task quit!")
return
}
if len(params) == 2 {
bucket := params[0]
keyListFile := params[1]
gErr := accountS.Get()
if gErr != nil {
fmt.Println(gErr)
return
}
mac := digest.Mac{
accountS.AccessKey,
[]byte(accountS.SecretKey),
}
client := rs.NewMac(&mac)
fp, err := os.Open(keyListFile)
if err != nil {
fmt.Println("Open key list file error", err)
return
}
defer fp.Close()
scanner := bufio.NewScanner(fp)
scanner.Split(bufio.ScanLines)
entries := make([]rs.EntryPath, 0)
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
items := strings.Split(line, "\t")
if len(items) > 0 {
key := items[0]
if key != "" {
entry := rs.EntryPath{
bucket, key,
}
entries = append(entries, entry)
}
}
//check 1000 limit
if len(entries) == BATCH_ALLOW_MAX {
batchDelete(client, entries)
//reset slice
entries = make([]rs.EntryPath, 0)
}
}
//delete the last batch
if len(entries) > 0 {
batchDelete(client, entries)
}
fmt.Println("All deleted!")
} else {
CmdHelp(cmd)
}
}
示例15: QiniuUpload
//.........这里部分代码省略.........
//check zone, default nb
switch uploadConfig.Zone {
case ZoneAWS:
SetZone(ZoneAWSConfig)
case ZoneBC:
SetZone(ZoneBCConfig)
default:
SetZone(ZoneNBConfig)
}
//use host if not empty, overwrite the default config
if uploadConfig.UpHost != "" {
conf.UP_HOST = uploadConfig.UpHost
}
//set resume upload settings
rio.SetSettings(&upSettings)
mac := digest.Mac{uploadConfig.AccessKey, []byte(uploadConfig.SecretKey)}
//check bind net interface card
var transport *http.Transport
var rsClient rs.Client
if uploadConfig.BindNicIp != "" {
transport = &http.Transport{
Dial: (&net.Dialer{
LocalAddr: &net.TCPAddr{
IP: net.ParseIP(uploadConfig.BindNicIp),
},
}).Dial,
}
}
if transport != nil {
rsClient = rs.NewMacEx(&mac, transport, "")
} else {
rsClient = rs.NewMac(&mac)
}
//check remote rs ip bind
if uploadConfig.BindRsIp != "" {
rsClient.Conn.BindRemoteIp = uploadConfig.BindRsIp
}
//scan lines and upload
for bScanner.Scan() {
line := strings.TrimSpace(bScanner.Text())
items := strings.Split(line, "\t")
if len(items) != 3 {
log.Errorf("Invalid cache line `%s'", line)
continue
}
localFpath := items[0]
currentFileCount += 1
skip := false
//check skip local file or folder
if uploadConfig.SkipPathPrefixes != "" {
//unpack skip prefix
skipPathPrefixes := strings.Split(uploadConfig.SkipPathPrefixes, ",")
for _, prefix := range skipPathPrefixes {
if strings.HasPrefix(localFpath, strings.TrimSpace(prefix)) {
log.Debug(fmt.Sprintf("Skip by path prefix '%s' for local file %s",
strings.TrimSpace(prefix), localFpath))
skip = true
skippedFileCount += 1