• 七牛云存储--内存put示例(go sdk)


    啥都不说了,居然有文档,有git为啥不提供example?

    自己看代码,琢磨了一下,原来是要这么用的。这里不得不吐槽一下package的命名,为啥要去io?golang自带系统包名就有io啊,哥哥。

    从git上线下载包,go get -u github.com/qiniu/api

    然后,贴代码:

    package main
    
    import (
        "bufio"
        "fmt"
        . "github.com/qiniu/api/conf"
        qnio "github.com/qiniu/api/io"
        "github.com/qiniu/api/rs"
        "os"
    )
    
    func main() {
        ACCESS_KEY = "xxxxxxxx"
        SECRET_KEY = "xxxxxxxx"
    
        var ret qnio.PutRet
    
        var extra = &qnio.PutExtra{
            MimeType: "image/jepg",
            CheckCrc: 0,
        }
        key := "1024x1024.jpg"
    
        scope := fmt.Sprintf("skypixeltest:%s", key)
    
        putPolicy := rs.PutPolicy{
            Scope: scope,
            // Expires:      expires,
        }
        uptoken := putPolicy.Token(nil)
    
        fi, err := os.Open("/Users/qpzhang/Downloads/1024x1024.jpg")
        st, _ := fi.Stat()
        if err != nil {
            panic(err)
        }
        defer fi.Close()
        data := bufio.NewReader(fi)
    
        fmt.Println("size ", st.Size())
        err = qnio.Put2(nil, &ret, uptoken, key, data, st.Size(), extra)
        if err != nil {
            fmt.Println(err)
        } else {
            fmt.Println("put sucess......", ret)
        }
    }
    scope的说明参考官方:
    http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html

     再吐槽一下,说明文档和变量名不一样,你这是要闹哪样。说明文档都是用json的变量名。

    type PutPolicy struct {
        Scope               string `json:"scope"`
        Expires             uint32 `json:"deadline"`             // 截止时间(以秒为单位)
        InsertOnly          uint16 `json:"exclusive,omitempty"`  // 若非0, 即使Scope为 Bucket:Key 的形式也是insert only
        DetectMime          uint16 `json:"detectMime,omitempty"` // 若非0, 则服务端根据内容自动确定 MimeType
        FsizeLimit          int64  `json:"fsizeLimit,omitempty"`
        SaveKey             string `json:"saveKey,omitempty"`
        CallbackUrl         string `json:"callbackUrl,omitempty"`
        CallbackBody        string `json:"callbackBody,omitempty"`
        ReturnUrl           string `json:"returnUrl,omitempty"`
        ReturnBody          string `json:"returnBody,omitempty"`
        PersistentOps       string `json:"persistentOps,omitempty"`
        PersistentNotifyUrl string `json:"persistentNotifyUrl,omitempty"`
        PersistentPipeline  string `json:"persistentPipeline,omitempty"`
        AsyncOps            string `json:"asyncOps,omitempty"`
        EndUser             string `json:"endUser,omitempty"`
    }

     

  • 相关阅读:
    Winform开发框架之终极应用 伍华聪 博客园
    DZ外部调用登陆
    利用服务定时执行
    winForm写cookie经过
    正则第一天
    NHibernate
    Databases supported by NHibernate
    定时执行
    NHibernate视频教程
    bernate异常及处理方法
  • 原文地址:https://www.cnblogs.com/zhangqingping/p/4275362.html
Copyright © 2020-2023  润新知