mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-13 09:52:27 +08:00
使用github的七牛SDK,配置名称Kodo->Qiniu
This commit is contained in:
35
vendor/github.com/qiniu/api.v7/examples/bucket_image_unimage.go
generated
vendored
Normal file
35
vendor/github.com/qiniu/api.v7/examples/bucket_image_unimage.go
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
cfg := storage.Config{}
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
bucketManger := storage.NewBucketManager(mac, &cfg)
|
||||
siteURL := "http://devtools.qiniu.com"
|
||||
|
||||
// 设置镜像存储
|
||||
err := bucketManger.SetImage(siteURL, bucket)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
// 取消设置镜像存储
|
||||
err = bucketManger.UnsetImage(bucket)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
}
|
||||
20
vendor/github.com/qiniu/api.v7/examples/cdn_create_timestamp_antileech_url.go
generated
vendored
Normal file
20
vendor/github.com/qiniu/api.v7/examples/cdn_create_timestamp_antileech_url.go
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/qiniu/api.v7/cdn"
|
||||
)
|
||||
|
||||
func main() {
|
||||
urlStr := "http://image.example.com/qiniu_do_not_delete.gif"
|
||||
cryptKey := "your crypt key"
|
||||
deadline := time.Now().Add(time.Second * 3600).Unix()
|
||||
accessUrl, err := cdn.CreateTimestampAntileechURL(urlStr, cryptKey, deadline)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(accessUrl)
|
||||
}
|
||||
31
vendor/github.com/qiniu/api.v7/examples/cdn_get_bandwidth_data.go
generated
vendored
Normal file
31
vendor/github.com/qiniu/api.v7/examples/cdn_get_bandwidth_data.go
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/cdn"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
domain = os.Getenv("QINIU_TEST_DOMAIN")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cdnManager := cdn.NewCdnManager(mac)
|
||||
|
||||
startDate := "2017-07-20"
|
||||
endDate := "2017-07-30"
|
||||
g := "day"
|
||||
data, err := cdnManager.GetBandwidthData(startDate, endDate, g, []string{domain})
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf("%v\n", data)
|
||||
}
|
||||
31
vendor/github.com/qiniu/api.v7/examples/cdn_get_flux_data.go
generated
vendored
Normal file
31
vendor/github.com/qiniu/api.v7/examples/cdn_get_flux_data.go
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/cdn"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
domain = os.Getenv("QINIU_TEST_DOMAIN")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cdnManager := cdn.NewCdnManager(mac)
|
||||
|
||||
startDate := "2017-07-20"
|
||||
endDate := "2017-07-30"
|
||||
g := "day"
|
||||
data, err := cdnManager.GetFluxData(startDate, endDate, g, []string{domain})
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Printf("%v\n", data)
|
||||
}
|
||||
37
vendor/github.com/qiniu/api.v7/examples/cdn_get_log_list.go
generated
vendored
Normal file
37
vendor/github.com/qiniu/api.v7/examples/cdn_get_log_list.go
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/cdn"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
domain = os.Getenv("QINIU_TEST_DOMAIN")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cdnManager := cdn.NewCdnManager(mac)
|
||||
|
||||
domains := []string{
|
||||
domain,
|
||||
}
|
||||
day := "2017-07-30"
|
||||
ret, err := cdnManager.GetCdnLogList(day, domains)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
domainLogs := ret.Data
|
||||
for domain, logs := range domainLogs {
|
||||
fmt.Println(domain)
|
||||
for _, item := range logs {
|
||||
fmt.Println(item.Name, item.URL, item.Size, item.ModifiedTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
33
vendor/github.com/qiniu/api.v7/examples/cdn_prefetch_urls.go
generated
vendored
Normal file
33
vendor/github.com/qiniu/api.v7/examples/cdn_prefetch_urls.go
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/cdn"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
domain = os.Getenv("QINIU_TEST_DOMAIN")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cdnManager := cdn.NewCdnManager(mac)
|
||||
|
||||
// 预取链接,单次请求链接不可以超过100个,如果超过,请分批发送请求
|
||||
urlsToPrefetch := []string{
|
||||
"http://if-pbl.qiniudn.com/qiniu.png",
|
||||
"http://if-pbl.qiniudn.com/github.png",
|
||||
}
|
||||
ret, err := cdnManager.PrefetchUrls(urlsToPrefetch)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(ret.Code)
|
||||
fmt.Println(ret.RequestID)
|
||||
}
|
||||
48
vendor/github.com/qiniu/api.v7/examples/cdn_refresh_urls_and_dirs.go
generated
vendored
Normal file
48
vendor/github.com/qiniu/api.v7/examples/cdn_refresh_urls_and_dirs.go
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/cdn"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
domain = os.Getenv("QINIU_TEST_DOMAIN")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cdnManager := cdn.NewCdnManager(mac)
|
||||
|
||||
//刷新链接,单次请求链接不可以超过100个,如果超过,请分批发送请求
|
||||
urlsToRefresh := []string{
|
||||
"http://if-pbl.qiniudn.com/qiniu.png",
|
||||
"http://if-pbl.qiniudn.com/github.png",
|
||||
}
|
||||
ret, err := cdnManager.RefreshUrls(urlsToRefresh)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(ret.Code)
|
||||
fmt.Println(ret.RequestID)
|
||||
|
||||
// 刷新目录,刷新目录需要联系七牛技术支持开通权限
|
||||
// 单次请求链接不可以超过10个,如果超过,请分批发送请求
|
||||
dirsToRefresh := []string{
|
||||
"http://if-pbl.qiniudn.com/images/",
|
||||
"http://if-pbl.qiniudn.com/static/",
|
||||
}
|
||||
ret, err = cdnManager.RefreshDirs(dirsToRefresh)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(ret.Code)
|
||||
fmt.Println(ret.RequestID)
|
||||
fmt.Println(ret.Error)
|
||||
}
|
||||
91
vendor/github.com/qiniu/api.v7/examples/create_uptoken.go
generated
vendored
Normal file
91
vendor/github.com/qiniu/api.v7/examples/create_uptoken.go
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
// 简单上传凭证
|
||||
putPolicy := storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
}
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
upToken := putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
|
||||
// 设置上传凭证有效期
|
||||
putPolicy = storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
}
|
||||
putPolicy.Expires = 7200 //示例2小时有效期
|
||||
|
||||
upToken = putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
|
||||
// 覆盖上传凭证
|
||||
// 需要覆盖的文件名
|
||||
keyToOverwrite := "qiniu.mp4"
|
||||
putPolicy = storage.PutPolicy{
|
||||
Scope: fmt.Sprintf("%s:%s", bucket, keyToOverwrite),
|
||||
}
|
||||
upToken = putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
|
||||
// 自定义上传回复凭证
|
||||
putPolicy = storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
ReturnBody: `{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}`,
|
||||
}
|
||||
upToken = putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
|
||||
// 带回调业务服务器的凭证(JSON方式)
|
||||
putPolicy = storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
CallbackURL: "http://api.example.com/qiniu/upload/callback",
|
||||
CallbackBody: `{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}`,
|
||||
CallbackBodyType: "application/json",
|
||||
}
|
||||
upToken = putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
|
||||
// 带回调业务服务器的凭证(URL方式)
|
||||
putPolicy = storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
CallbackURL: "http://api.example.com/qiniu/upload/callback",
|
||||
CallbackBody: "key=$(key)&hash=$(etag)&bucket=$(bucket)&fsize=$(fsize)&name=$(x:name)",
|
||||
}
|
||||
upToken = putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
|
||||
// 带数据处理的凭证
|
||||
saveMp4Entry := base64.URLEncoding.EncodeToString([]byte(bucket + ":avthumb_test_target.mp4"))
|
||||
saveJpgEntry := base64.URLEncoding.EncodeToString([]byte(bucket + ":vframe_test_target.jpg"))
|
||||
//数据处理指令,支持多个指令
|
||||
avthumbMp4Fop := "avthumb/mp4|saveas/" + saveMp4Entry
|
||||
vframeJpgFop := "vframe/jpg/offset/1|saveas/" + saveJpgEntry
|
||||
//连接多个操作指令
|
||||
persistentOps := strings.Join([]string{avthumbMp4Fop, vframeJpgFop}, ";")
|
||||
pipeline := "test"
|
||||
putPolicy = storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
PersistentOps: persistentOps,
|
||||
PersistentPipeline: pipeline,
|
||||
PersistentNotifyURL: "http://api.example.com/qiniu/pfop/notify",
|
||||
}
|
||||
upToken = putPolicy.UploadToken(mac)
|
||||
fmt.Println(upToken)
|
||||
}
|
||||
76
vendor/github.com/qiniu/api.v7/examples/form_upload_simple.go
generated
vendored
Normal file
76
vendor/github.com/qiniu/api.v7/examples/form_upload_simple.go
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
localFile := "/Users/jemy/Documents/github.png"
|
||||
key := "github-x.png"
|
||||
putPolicy := storage.PutPolicy{
|
||||
Scope: bucket + ":" + key,
|
||||
}
|
||||
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
upToken := putPolicy.UploadToken(mac)
|
||||
cfg := storage.Config{}
|
||||
// 空间对应的机房
|
||||
cfg.Zone = &storage.ZoneHuadong
|
||||
// 是否使用https域名
|
||||
cfg.UseHTTPS = false
|
||||
// 上传是否使用CDN上传加速
|
||||
cfg.UseCdnDomains = false
|
||||
|
||||
//设置代理
|
||||
proxyURL := "http://localhost:8888"
|
||||
proxyURI, _ := url.Parse(proxyURL)
|
||||
|
||||
//绑定网卡
|
||||
nicIP := "100.100.33.138"
|
||||
dialer := &net.Dialer{
|
||||
LocalAddr: &net.TCPAddr{
|
||||
IP: net.ParseIP(nicIP),
|
||||
},
|
||||
}
|
||||
|
||||
//构建代理client对象
|
||||
client := http.Client{
|
||||
Transport: &http.Transport{
|
||||
Proxy: http.ProxyURL(proxyURI),
|
||||
Dial: dialer.Dial,
|
||||
},
|
||||
}
|
||||
|
||||
// 构建表单上传的对象
|
||||
formUploader := storage.NewFormUploaderEx(&cfg, &rpc.Client{Client: &client})
|
||||
ret := storage.PutRet{}
|
||||
// 可选配置
|
||||
putExtra := storage.PutExtra{
|
||||
Params: map[string]string{
|
||||
"x:name": "github logo",
|
||||
},
|
||||
}
|
||||
//putExtra.NoCrc32Check = true
|
||||
err := formUploader.PutFile(context.Background(), &ret, upToken, key, localFile, &putExtra)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(ret.Key, ret.Hash)
|
||||
}
|
||||
32
vendor/github.com/qiniu/api.v7/examples/prefop.go
generated
vendored
Normal file
32
vendor/github.com/qiniu/api.v7/examples/prefop.go
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cfg := storage.Config{
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
operationManager := storage.NewOperationManager(mac, &cfg)
|
||||
persistentId := "z0.597f28b445a2650c994bb208"
|
||||
ret, err := operationManager.Prefop(persistentId)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(ret.String())
|
||||
}
|
||||
127
vendor/github.com/qiniu/api.v7/examples/resume_upload_advanced.go
generated
vendored
Normal file
127
vendor/github.com/qiniu/api.v7/examples/resume_upload_advanced.go
generated
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
|
||||
"context"
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func md5Hex(str string) string {
|
||||
h := md5.New()
|
||||
h.Write([]byte(str))
|
||||
return hex.EncodeToString(h.Sum(nil))
|
||||
}
|
||||
|
||||
type ProgressRecord struct {
|
||||
Progresses []storage.BlkputRet `json:"progresses"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
localFile := "your local file path"
|
||||
key := "your file save key"
|
||||
|
||||
putPolicy := storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
}
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
upToken := putPolicy.UploadToken(mac)
|
||||
|
||||
cfg := storage.Config{}
|
||||
// 空间对应的机房
|
||||
cfg.Zone = &storage.ZoneHuadong
|
||||
// 是否使用https域名
|
||||
cfg.UseHTTPS = false
|
||||
// 上传是否使用CDN上传加速
|
||||
cfg.UseCdnDomains = false
|
||||
|
||||
// 必须仔细选择一个能标志上传唯一性的 recordKey 用来记录上传进度
|
||||
// 我们这里采用 md5(bucket+key+local_path+local_file_last_modified)+".progress" 作为记录上传进度的文件名
|
||||
fileInfo, statErr := os.Stat(localFile)
|
||||
if statErr != nil {
|
||||
fmt.Println(statErr)
|
||||
return
|
||||
}
|
||||
|
||||
fileSize := fileInfo.Size()
|
||||
fileLmd := fileInfo.ModTime().UnixNano()
|
||||
recordKey := md5Hex(fmt.Sprintf("%s:%s:%s:%s", bucket, key, localFile, fileLmd)) + ".progress"
|
||||
|
||||
// 指定的进度文件保存目录,实际情况下,请确保该目录存在,而且只用于记录进度文件
|
||||
recordDir := "/Users/jemy/Temp/progress"
|
||||
mErr := os.MkdirAll(recordDir, 0755)
|
||||
if mErr != nil {
|
||||
fmt.Println("mkdir for record dir error,", mErr)
|
||||
return
|
||||
}
|
||||
|
||||
recordPath := filepath.Join(recordDir, recordKey)
|
||||
|
||||
progressRecord := ProgressRecord{}
|
||||
// 尝试从旧的进度文件中读取进度
|
||||
recordFp, openErr := os.Open(recordPath)
|
||||
if openErr == nil {
|
||||
progressBytes, readErr := ioutil.ReadAll(recordFp)
|
||||
if readErr == nil {
|
||||
mErr := json.Unmarshal(progressBytes, &progressRecord)
|
||||
if mErr == nil {
|
||||
// 检查context 是否过期,避免701错误
|
||||
for _, item := range progressRecord.Progresses {
|
||||
if storage.IsContextExpired(item) {
|
||||
fmt.Println(item.ExpiredAt)
|
||||
progressRecord.Progresses = make([]storage.BlkputRet, storage.BlockCount(fileSize))
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
recordFp.Close()
|
||||
}
|
||||
|
||||
if len(progressRecord.Progresses) == 0 {
|
||||
progressRecord.Progresses = make([]storage.BlkputRet, storage.BlockCount(fileSize))
|
||||
}
|
||||
|
||||
resumeUploader := storage.NewResumeUploader(&cfg)
|
||||
ret := storage.PutRet{}
|
||||
progressLock := sync.RWMutex{}
|
||||
|
||||
putExtra := storage.RputExtra{
|
||||
Progresses: progressRecord.Progresses,
|
||||
Notify: func(blkIdx int, blkSize int, ret *storage.BlkputRet) {
|
||||
progressLock.Lock()
|
||||
defer progressLock.Unlock()
|
||||
//将进度序列化,然后写入文件
|
||||
progressRecord.Progresses[blkIdx] = *ret
|
||||
progressBytes, _ := json.Marshal(progressRecord)
|
||||
fmt.Println("write progress file", blkIdx, recordPath)
|
||||
wErr := ioutil.WriteFile(recordPath, progressBytes, 0644)
|
||||
if wErr != nil {
|
||||
fmt.Println("write progress file error,", wErr)
|
||||
}
|
||||
},
|
||||
}
|
||||
err := resumeUploader.PutFile(context.Background(), &ret, upToken, key, localFile, &putExtra)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
//上传成功之后,一定记得删除这个进度文件
|
||||
os.Remove(recordPath)
|
||||
fmt.Println(ret.Key, ret.Hash)
|
||||
}
|
||||
72
vendor/github.com/qiniu/api.v7/examples/resume_upload_simple.go
generated
vendored
Normal file
72
vendor/github.com/qiniu/api.v7/examples/resume_upload_simple.go
generated
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
localFile := "/Users/jemy/Documents/github.png"
|
||||
key := "qiniu-x.png"
|
||||
|
||||
putPolicy := storage.PutPolicy{
|
||||
Scope: bucket,
|
||||
}
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{}
|
||||
// 空间对应的机房
|
||||
cfg.Zone = &storage.ZoneHuadong
|
||||
// 是否使用https域名
|
||||
cfg.UseHTTPS = false
|
||||
// 上传是否使用CDN上传加速
|
||||
cfg.UseCdnDomains = false
|
||||
|
||||
//设置代理
|
||||
proxyURL := "http://localhost:8888"
|
||||
proxyURI, _ := url.Parse(proxyURL)
|
||||
|
||||
//绑定网卡
|
||||
nicIP := "100.100.33.138"
|
||||
dialer := &net.Dialer{
|
||||
LocalAddr: &net.TCPAddr{
|
||||
IP: net.ParseIP(nicIP),
|
||||
},
|
||||
}
|
||||
|
||||
//构建代理client对象
|
||||
client := http.Client{
|
||||
Transport: &http.Transport{
|
||||
Proxy: http.ProxyURL(proxyURI),
|
||||
Dial: dialer.Dial,
|
||||
},
|
||||
}
|
||||
|
||||
resumeUploader := storage.NewResumeUploaderEx(&cfg, &rpc.Client{Client: &client})
|
||||
upToken := putPolicy.UploadToken(mac)
|
||||
|
||||
ret := storage.PutRet{}
|
||||
|
||||
err := resumeUploader.PutFile(context.Background(), &ret, upToken, key, localFile, nil)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(ret.Key, ret.Hash)
|
||||
}
|
||||
64
vendor/github.com/qiniu/api.v7/examples/rs_batch_change_mime.go
generated
vendored
Normal file
64
vendor/github.com/qiniu/api.v7/examples/rs_batch_change_mime.go
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
chgmKeys := map[string]string{
|
||||
"github1.png": "image/x-png",
|
||||
"github2.png": "image/x-png",
|
||||
"github3.png": "image/x-png",
|
||||
"github4.png": "image/x-png",
|
||||
"github5.png": "image/x-png",
|
||||
}
|
||||
chgmOps := make([]string, 0, len(chgmKeys))
|
||||
for key, newMime := range chgmKeys {
|
||||
chgmOps = append(chgmOps, storage.URIChangeMime(bucket, key, newMime))
|
||||
}
|
||||
rets, err := bucketManager.Batch(chgmOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
67
vendor/github.com/qiniu/api.v7/examples/rs_batch_change_type.go
generated
vendored
Normal file
67
vendor/github.com/qiniu/api.v7/examples/rs_batch_change_type.go
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
//每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
||||
|
||||
chtypeKeys := map[string]int{
|
||||
"github1.png": 1,
|
||||
"github2.png": 1,
|
||||
"github3.png": 1,
|
||||
"github4.png": 1,
|
||||
"github5.png": 1,
|
||||
}
|
||||
chtypeOps := make([]string, 0, len(chtypeKeys))
|
||||
for key, fileType := range chtypeKeys {
|
||||
chtypeOps = append(chtypeOps, storage.URIChangeType(bucket, key, fileType))
|
||||
}
|
||||
rets, err := bucketManager.Batch(chtypeOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
67
vendor/github.com/qiniu/api.v7/examples/rs_batch_copy.go
generated
vendored
Normal file
67
vendor/github.com/qiniu/api.v7/examples/rs_batch_copy.go
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
//每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
||||
srcBucket := bucket
|
||||
destBucket := bucket
|
||||
force := true
|
||||
copyKeys := map[string]string{
|
||||
"github1.png": "github1-copy.png",
|
||||
"github2.png": "github2-copy.png",
|
||||
"github3.png": "github3-copy.png",
|
||||
"github4.png": "github4-copy.png",
|
||||
"github5.png": "github5-copy.png",
|
||||
}
|
||||
copyOps := make([]string, 0, len(copyKeys))
|
||||
for srcKey, destKey := range copyKeys {
|
||||
copyOps = append(copyOps, storage.URICopy(srcBucket, srcKey, destBucket, destKey, force))
|
||||
}
|
||||
rets, err := bucketManager.Batch(copyOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
fmt.Printf("%v\n", ret.Data)
|
||||
}
|
||||
}
|
||||
}
|
||||
63
vendor/github.com/qiniu/api.v7/examples/rs_batch_delete.go
generated
vendored
Normal file
63
vendor/github.com/qiniu/api.v7/examples/rs_batch_delete.go
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
//每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
||||
keys := []string{
|
||||
"github1.png",
|
||||
"github2.png",
|
||||
"github3.png",
|
||||
"github4.png",
|
||||
"github5.png",
|
||||
}
|
||||
deleteOps := make([]string, 0, len(keys))
|
||||
for _, key := range keys {
|
||||
deleteOps = append(deleteOps, storage.URIDelete(bucket, key))
|
||||
}
|
||||
rets, err := bucketManager.Batch(deleteOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
}
|
||||
}
|
||||
}
|
||||
66
vendor/github.com/qiniu/api.v7/examples/rs_batch_deleteAfterDays.go
generated
vendored
Normal file
66
vendor/github.com/qiniu/api.v7/examples/rs_batch_deleteAfterDays.go
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
//每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
||||
expireKeys := map[string]int{
|
||||
"github1.png": 7,
|
||||
"github2.png": 8,
|
||||
"github3.png": 9,
|
||||
"github4.png": 10,
|
||||
"github5.png": 11,
|
||||
}
|
||||
expireOps := make([]string, 0, len(expireKeys))
|
||||
for key, expire := range expireKeys {
|
||||
expireOps = append(expireOps, storage.URIDeleteAfterDays(bucket, key, expire))
|
||||
}
|
||||
rets, err := bucketManager.Batch(expireOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
67
vendor/github.com/qiniu/api.v7/examples/rs_batch_move.go
generated
vendored
Normal file
67
vendor/github.com/qiniu/api.v7/examples/rs_batch_move.go
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
//每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
||||
srcBucket := bucket
|
||||
destBucket := bucket
|
||||
force := true
|
||||
moveKeys := map[string]string{
|
||||
"github1.png": "github1-move.png",
|
||||
"github2.png": "github2-move.png",
|
||||
"github3.png": "github3-move.png",
|
||||
"github4.png": "github4-move.png",
|
||||
"github5.png": "github5-move.png",
|
||||
}
|
||||
moveOps := make([]string, 0, len(moveKeys))
|
||||
for srcKey, destKey := range moveKeys {
|
||||
moveOps = append(moveOps, storage.URIMove(srcBucket, srcKey, destBucket, destKey, force))
|
||||
}
|
||||
rets, err := bucketManager.Batch(moveOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
fmt.Printf("%v\n", ret.Data)
|
||||
}
|
||||
}
|
||||
}
|
||||
66
vendor/github.com/qiniu/api.v7/examples/rs_batch_stat.go
generated
vendored
Normal file
66
vendor/github.com/qiniu/api.v7/examples/rs_batch_stat.go
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
"github.com/qiniu/x/rpc.v7"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
//每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
|
||||
keys := []string{
|
||||
"github1.png",
|
||||
"github2.png",
|
||||
"github3.png",
|
||||
"github4.png",
|
||||
"github5.png",
|
||||
}
|
||||
statOps := make([]string, 0, len(keys))
|
||||
for _, key := range keys {
|
||||
statOps = append(statOps, storage.URIStat(bucket, key))
|
||||
}
|
||||
rets, err := bucketManager.Batch(statOps)
|
||||
if err != nil {
|
||||
// 遇到错误
|
||||
if _, ok := err.(*rpc.ErrorInfo); ok {
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
if ret.Code != 200 {
|
||||
fmt.Printf("%s\n", ret.Data.Error)
|
||||
} else {
|
||||
fmt.Printf("%v\n", ret.Data)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("batch error, %s", err)
|
||||
}
|
||||
} else {
|
||||
// 完全成功
|
||||
for _, ret := range rets {
|
||||
// 200 为成功
|
||||
fmt.Printf("%d\n", ret.Code)
|
||||
fmt.Printf("%v\n", ret.Data)
|
||||
}
|
||||
}
|
||||
}
|
||||
36
vendor/github.com/qiniu/api.v7/examples/rs_change_mime.go
generated
vendored
Normal file
36
vendor/github.com/qiniu/api.v7/examples/rs_change_mime.go
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
key := "github.png"
|
||||
newMime := "image/x-png"
|
||||
err := bucketManager.ChangeMime(bucket, key, newMime)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
36
vendor/github.com/qiniu/api.v7/examples/rs_change_type.go
generated
vendored
Normal file
36
vendor/github.com/qiniu/api.v7/examples/rs_change_type.go
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
key := "github.png"
|
||||
fileType := 1 // 0 表示普通存储,1表示低频存储
|
||||
err := bucketManager.ChangeType(bucket, key, fileType)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
42
vendor/github.com/qiniu/api.v7/examples/rs_copy.go
generated
vendored
Normal file
42
vendor/github.com/qiniu/api.v7/examples/rs_copy.go
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
srcBucket := "if-pbl"
|
||||
srcKey := "github.png"
|
||||
//目标空间可以和源空间相同,但是不能为跨机房的空间
|
||||
destBucket := srcBucket
|
||||
//目标文件名可以和源文件名相同,也可以不同
|
||||
destKey := "github-new.png"
|
||||
//如果目标文件存在,是否强制覆盖,如果不覆盖,默认返回614 file exists
|
||||
force := false
|
||||
err := bucketManager.Copy(srcBucket, srcKey, destBucket, destKey, force)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
35
vendor/github.com/qiniu/api.v7/examples/rs_delete.go
generated
vendored
Normal file
35
vendor/github.com/qiniu/api.v7/examples/rs_delete.go
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
key := "github.png"
|
||||
err := bucketManager.Delete(bucket, key)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
36
vendor/github.com/qiniu/api.v7/examples/rs_deleteAfterDays.go
generated
vendored
Normal file
36
vendor/github.com/qiniu/api.v7/examples/rs_deleteAfterDays.go
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
key := "github.png"
|
||||
days := 7
|
||||
err := bucketManager.DeleteAfterDays(bucket, key, days)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
33
vendor/github.com/qiniu/api.v7/examples/rs_download.go
generated
vendored
Normal file
33
vendor/github.com/qiniu/api.v7/examples/rs_download.go
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
// 公开空间访问
|
||||
domain := "https://image.example.com"
|
||||
key := "这是一个测试文件.jpg"
|
||||
publicAccessURL := storage.MakePublicURL(domain, key)
|
||||
fmt.Println(publicAccessURL)
|
||||
|
||||
// 私有空间访问
|
||||
domain = "https://image.example.com"
|
||||
key = "这是一个测试文件.jpg"
|
||||
deadline := time.Now().Add(time.Second * 3600).Unix() //1小时有效期
|
||||
privateAccessURL := storage.MakePrivateURL(mac, domain, key, deadline)
|
||||
fmt.Println(privateAccessURL)
|
||||
}
|
||||
44
vendor/github.com/qiniu/api.v7/examples/rs_fetch.go
generated
vendored
Normal file
44
vendor/github.com/qiniu/api.v7/examples/rs_fetch.go
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
resURL := "http://devtools.qiniu.com/qiniu.png"
|
||||
// 指定保存的key
|
||||
fetchRet, err := bucketManager.Fetch(resURL, bucket, "qiniu.png")
|
||||
if err != nil {
|
||||
fmt.Println("fetch error,", err)
|
||||
} else {
|
||||
fmt.Println(fetchRet.String())
|
||||
}
|
||||
// 不指定保存的key,默认用文件hash作为文件名
|
||||
fetchRet, err = bucketManager.FetchWithoutKey(resURL, bucket)
|
||||
if err != nil {
|
||||
fmt.Println("fetch error,", err)
|
||||
} else {
|
||||
fmt.Println(fetchRet.String())
|
||||
}
|
||||
}
|
||||
51
vendor/github.com/qiniu/api.v7/examples/rs_list_files.go
generated
vendored
Normal file
51
vendor/github.com/qiniu/api.v7/examples/rs_list_files.go
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
limit := 1000
|
||||
prefix := "qiniu"
|
||||
delimiter := ""
|
||||
//初始列举marker为空
|
||||
marker := ""
|
||||
for {
|
||||
entries, _, nextMarker, hashNext, err := bucketManager.ListFiles(bucket, prefix, delimiter, marker, limit)
|
||||
if err != nil {
|
||||
fmt.Println("list error,", err)
|
||||
break
|
||||
}
|
||||
//print entries
|
||||
for _, entry := range entries {
|
||||
fmt.Println(entry.Key)
|
||||
}
|
||||
if hashNext {
|
||||
marker = nextMarker
|
||||
} else {
|
||||
//list end
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
42
vendor/github.com/qiniu/api.v7/examples/rs_move.go
generated
vendored
Normal file
42
vendor/github.com/qiniu/api.v7/examples/rs_move.go
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
srcBucket := bucket
|
||||
srcKey := "github.png"
|
||||
//目标空间可以和源空间相同,但是不能为跨机房的空间
|
||||
destBucket := srcBucket
|
||||
//目标文件名可以和源文件名相同,也可以不同
|
||||
destKey := "github-new.png"
|
||||
//如果目标文件存在,是否强制覆盖,如果不覆盖,默认返回614 file exists
|
||||
force := false
|
||||
err := bucketManager.Move(srcBucket, srcKey, destBucket, destKey, force)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
34
vendor/github.com/qiniu/api.v7/examples/rs_prefetch.go
generated
vendored
Normal file
34
vendor/github.com/qiniu/api.v7/examples/rs_prefetch.go
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
key := "qiniu.png"
|
||||
err := bucketManager.Prefetch(bucket, key)
|
||||
if err != nil {
|
||||
fmt.Println("fetch error,", err)
|
||||
}
|
||||
}
|
||||
38
vendor/github.com/qiniu/api.v7/examples/rs_stat.go
generated
vendored
Normal file
38
vendor/github.com/qiniu/api.v7/examples/rs_stat.go
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
|
||||
cfg := storage.Config{
|
||||
// 是否使用https域名进行资源管理
|
||||
UseHTTPS: false,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
bucketManager := storage.NewBucketManager(mac, &cfg)
|
||||
|
||||
key := "qiniu.png"
|
||||
fileInfo, sErr := bucketManager.Stat(bucket, key)
|
||||
if sErr != nil {
|
||||
fmt.Println(sErr)
|
||||
return
|
||||
}
|
||||
fmt.Println(fileInfo.String())
|
||||
//可以解析文件的PutTime
|
||||
fmt.Println(storage.ParsePutTime(fileInfo.PutTime))
|
||||
}
|
||||
52
vendor/github.com/qiniu/api.v7/examples/video_pfop.go
generated
vendored
Normal file
52
vendor/github.com/qiniu/api.v7/examples/video_pfop.go
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/qiniu/api.v7/auth/qbox"
|
||||
"github.com/qiniu/api.v7/storage"
|
||||
)
|
||||
|
||||
var (
|
||||
accessKey = os.Getenv("QINIU_ACCESS_KEY")
|
||||
secretKey = os.Getenv("QINIU_SECRET_KEY")
|
||||
bucket = os.Getenv("QINIU_TEST_BUCKET")
|
||||
// 数据处理的私有队列,必须指定以保障处理速度
|
||||
pipeline = os.Getenv("QINIU_TEST_PIPELINE")
|
||||
)
|
||||
|
||||
func main() {
|
||||
mac := qbox.NewMac(accessKey, secretKey)
|
||||
cfg := storage.Config{
|
||||
UseHTTPS: true,
|
||||
}
|
||||
// 指定空间所在的区域,如果不指定将自动探测
|
||||
// 如果没有特殊需求,默认不需要指定
|
||||
//cfg.Zone=&storage.ZoneHuabei
|
||||
operationManager := storage.NewOperationManager(mac, &cfg)
|
||||
key := "qiniu.mp4"
|
||||
saveBucket := bucket
|
||||
// 处理指令集合
|
||||
fopAvthumb := fmt.Sprintf("avthumb/mp4/s/480x320/vb/500k|saveas/%s",
|
||||
storage.EncodedEntry(saveBucket, "pfop_test_qiniu.mp4"))
|
||||
fopVframe := fmt.Sprintf("vframe/jpg/offset/10|saveas/%s",
|
||||
storage.EncodedEntry(saveBucket, "pfop_test_qiniu.jpg"))
|
||||
fopVsample := fmt.Sprintf("vsample/jpg/interval/20/pattern/%s",
|
||||
base64.URLEncoding.EncodeToString([]byte("pfop_test_$(count).jpg")))
|
||||
fopBatch := []string{fopAvthumb, fopVframe, fopVsample}
|
||||
fops := strings.Join(fopBatch, ";")
|
||||
// 强制重新执行数据处理任务
|
||||
force := true
|
||||
// 数据处理指令全部完成之后,通知该地址
|
||||
notifyURL := "http://api.example.com/pfop/callback"
|
||||
// 数据处理的私有队列,必须指定以保障处理速度
|
||||
persistentId, err := operationManager.Pfop(bucket, key, fops, pipeline, notifyURL, force)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println(persistentId)
|
||||
}
|
||||
Reference in New Issue
Block a user