Test: qiniu handler get token

This commit is contained in:
HFO4
2020-01-15 11:03:26 +08:00
parent e8d21b1e9b
commit 534e127f87
5 changed files with 164 additions and 67 deletions

View File

@ -3,12 +3,10 @@ package qiniu
import (
"context"
"errors"
"fmt"
model "github.com/HFO4/cloudreve/models"
"github.com/HFO4/cloudreve/pkg/filesystem/fsctx"
"github.com/HFO4/cloudreve/pkg/filesystem/response"
"github.com/HFO4/cloudreve/pkg/serializer"
"github.com/qiniu/api.v7/v7/auth"
"github.com/qiniu/api.v7/v7/auth/qbox"
"github.com/qiniu/api.v7/v7/storage"
"io"
@ -28,31 +26,31 @@ func (handler Handler) Get(ctx context.Context, path string) (response.RSCloser,
// Put 将文件流保存到指定目录
func (handler Handler) Put(ctx context.Context, file io.ReadCloser, dst string, size uint64) error {
return errors.New("未实现")
// 凭证生成
putPolicy := storage.PutPolicy{
Scope: "cloudrevetest",
}
mac := auth.New("YNzTBBpDUq4EEiFV0-vyJCZCJ0LvUEI0_WvxtEXE", "Clm9d9M2CH7pZ8vm049ZlGZStQxrRQVRTjU_T5_0")
upToken := putPolicy.UploadToken(mac)
cfg := storage.Config{}
// 空间对应的机房
cfg.Zone = &storage.ZoneHuadong
formUploader := storage.NewFormUploader(&cfg)
ret := storage.PutRet{}
putExtra := storage.PutExtra{
Params: map[string]string{},
}
defer file.Close()
err := formUploader.Put(ctx, &ret, upToken, dst, file, int64(size), &putExtra)
if err != nil {
fmt.Println(err)
return err
}
fmt.Println(ret.Key, ret.Hash)
return nil
//// 凭证生成
//putPolicy := storage.PutPolicy{
// Scope: "cloudrevetest",
//}
//mac := auth.New("YNzTBBpDUq4EEiFV0-vyJCZCJ0LvUEI0_WvxtEXE", "Clm9d9M2CH7pZ8vm049ZlGZStQxrRQVRTjU_T5_0")
//upToken := putPolicy.UploadToken(mac)
//
//cfg := storage.Config{}
//// 空间对应的机房
//cfg.Zone = &storage.ZoneHuadong
//formUploader := storage.NewFormUploader(&cfg)
//ret := storage.PutRet{}
//putExtra := storage.PutExtra{
// Params: map[string]string{},
//}
//
//defer file.Close()
//
//err := formUploader.Put(ctx, &ret, upToken, dst, file, int64(size), &putExtra)
//if err != nil {
// fmt.Println(err)
// return err
//}
//fmt.Println(ret.Key, ret.Hash)
//return nil
}
// Delete 删除一个或多个文件,
@ -94,7 +92,6 @@ func (handler Handler) Token(ctx context.Context, TTL int64, key string) (serial
// 创建上传策略
putPolicy := storage.PutPolicy{
Scope: handler.Policy.BucketName,
Expires: uint64(TTL),
CallbackURL: apiURL.String(),
CallbackBody: `{"name":"$(fname)","source_name":"$(key)","size":$(fsize),"pic_info":"$(imageInfo.width),$(imageInfo.height)"}`,
CallbackBodyType: "application/json",
@ -107,8 +104,14 @@ func (handler Handler) Token(ctx context.Context, TTL int64, key string) (serial
putPolicy.MimeLimit = handler.Policy.OptionsSerialized.MimeType
}
return handler.getUploadCredential(ctx, putPolicy, TTL)
}
// getUploadCredential 签名上传策略
func (handler Handler) getUploadCredential(ctx context.Context, policy storage.PutPolicy, TTL int64) (serializer.UploadCredential, error) {
policy.Expires = uint64(TTL)
mac := qbox.NewMac(handler.Policy.AccessKey, handler.Policy.SecretKey)
upToken := putPolicy.UploadToken(mac)
upToken := policy.UploadToken(mac)
return serializer.UploadCredential{
Token: upToken,