github.com/qiniu/go-sdk/v7@v7.27.0/examples/resume_upload_advanced/main.go (about)

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"os"
     7  
     8  	"github.com/qiniu/go-sdk/v7/auth"
     9  	"github.com/qiniu/go-sdk/v7/storage"
    10  )
    11  
    12  var (
    13  	accessKey = os.Getenv("QINIU_ACCESS_KEY")
    14  	secretKey = os.Getenv("QINIU_SECRET_KEY")
    15  	bucket    = os.Getenv("QINIU_TEST_BUCKET")
    16  	localFile = os.Getenv("LOCAL_FILE")
    17  	key       = os.Getenv("KEY")
    18  
    19  	// 指定的进度文件保存目录,实际情况下,请确保该目录存在,而且只用于记录进度文件
    20  	recordDir = os.Getenv("RECORD_DIR")
    21  )
    22  
    23  func main() {
    24  	putPolicy := storage.PutPolicy{
    25  		Scope: bucket,
    26  	}
    27  	mac := auth.New(accessKey, secretKey)
    28  	upToken := putPolicy.UploadToken(mac)
    29  
    30  	cfg := storage.Config{}
    31  	// 是否使用https域名
    32  	cfg.UseHTTPS = false
    33  	// 上传是否使用CDN上传加速
    34  	cfg.UseCdnDomains = false
    35  
    36  	mErr := os.MkdirAll(recordDir, 0o755)
    37  	if mErr != nil {
    38  		fmt.Println("mkdir for record dir error,", mErr)
    39  		return
    40  	}
    41  
    42  	resumeUploader := storage.NewResumeUploader(&cfg)
    43  	ret := storage.PutRet{}
    44  
    45  	recorder, err := storage.NewFileRecorder(recordDir)
    46  	if err != nil {
    47  		fmt.Println(err)
    48  		return
    49  	}
    50  	if err = resumeUploader.PutFile(context.Background(), &ret, upToken, key, localFile, &storage.RputExtra{
    51  		Recorder: recorder,
    52  	}); err != nil {
    53  		fmt.Println(err)
    54  		return
    55  	}
    56  	fmt.Println(ret.Key, ret.Hash)
    57  }