zoukankan      html  css  js  c++  java
  • 七牛云存储--内存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"`
    }

     

  • 相关阅读:
    P1351 联合权值
    c++ 贪心讲解大礼包
    取石子 找规律
    树 dfs暴力判环 题意转化
    P2519 [HAOI2011]problem a
    P1640 [SCOI2010]连续攻击游戏 二分图最大匹配 匈牙利算法
    P2756 飞行员配对方案问题 二分图匹配 匈牙利算法
    cogs 49. 跳马问题 DFS dp
    cogs 2. 旅行计划 dijkstra+打印路径小技巧
    cogs 1440. [NOIP2013]积木大赛 贪心水题
  • 原文地址:https://www.cnblogs.com/zhangqingping/p/4275362.html
Copyright © 2011-2022 走看看