分享
  1. 首页
  2. 文章

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

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

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

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

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏