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"`
    }

     

  • 相关阅读:
    垃圾邮件处理
    主成分分析
    逻辑回归实践
    特征选择
    逻辑回归
    15 手写数字识别-小数据集
    14 深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    11.分类与监督学习,朴素贝叶斯分类算法
  • 原文地址:https://www.cnblogs.com/zhangqingping/p/4275362.html
Copyright © 2011-2022 走看看