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

zhangqingping · · 3395 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

啥都不说了,居然有文档,有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"`
}

 

 

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:zhangqingping

查看原文:七牛云存储--内存put示例(go sdk)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3395 次点击  
加入收藏 微博
上一篇:Go Flow Control
下一篇:goagent配置
1 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传