七牛云存储--内存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"`
}

 

时间: 2024-10-29 00:25:51

七牛云存储--内存put示例(go sdk)的相关文章

七牛云存储Python SDK使用教程 - 上传策略详解

文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k 浏览 本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 前言 我们在上面的两节中了解到,客户端上传文件时,需要从业务服务器申请一个上传凭证(Upload Token),而这个上传凭证是业务服务器根据上传策略(PutPolicy)来生成的,而这个生成过程中

七牛云存储SDK扩展

前些天在使用七牛云存储进行数据上传的过程中,发现七牛提供的SDK仅支持以File的形式进行上传,不支持以InputStream的形式进行上传,特对其进行了相应的扩展,具体扩展如下: import java.io.InputStream; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.InputStreamBody; import org.apache.h

第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件里的内容

package main import ( "html/template" "io" "io/ioutil" "log" "net/http" "os" "path" "runtime/debug" ) const ( ListDir      = 0x0001 UPLOAD_DIR   = "./uploads" TEMPLA

用ueditor上传图片、文件等到七牛云存储

ueditor上传文件,是用数据流的形式上传的. 而七牛云存储官方文档中,只提供了文件路径上传的方式. 但是,仅仅是在官方文档中写了这一种方式. 事实上,利用VS的对象管理器,打开Qiniu的dll,我们可以看到以下东西: 其实Qiniu提供的SDK中,是可以利用文件流上传文件的. 所以,根据官方文档提供的案例,我们可以将上传改写成下面的样子: /// <summary> /// 上传文件 /// </summary> /// <param name="key&qu

DjangoUeditor 使用七牛云存储

DjangoUeditor 是一个相当赞的django 富文本编辑器,你可以在 https://github.com/zhangfisher/DjangoUeditor 查看相关信息. 我一直想着把DjangoUeditor 的图片和文件存储修改为七牛云存储,但又觉得自己js水平太菜,所以就一直拖延到现在, 其实我根本没改js. 好了,下面不废话,开始. 一.文件上传到七牛 在修改 DjangoUeditor 存储到七牛之前,我第一步要尝试的,就是本地文件上传到七牛. 这一步需要七牛的sdk h

【Uploadify】远程上传图片到【七牛云存储】

1.下载Uploadify版本3.2.1 2.下载七牛SDK 解压后将 qiniu 文件夹copy到uploadify文件夹下 3.修改uploadify.php文件 <?php $verifyToken = md5('unique_salt' . $_POST['timestamp']); if (!empty($_FILES) && $_POST['token'] == $verifyToken) { $tempFile = $_FILES['Filedata']['tmp_na

ueditor上传图片到七牛云存储(form api,java)

转:http://my.oschina.net/duoduo3369/blog/174655 ueditor上传图片到七牛云存储 ueditor结合七牛传图片 七牛的试炼 开发前的准备与注意事项说明 Let's rock 与ueditor结合前的准备工作 首先从表单开始 生成token 建立图片空间 生成token 上传流程 集成ueditor 将ueditor中的图片模块的在线管理功能和七牛结合 ueditor上传图片到七牛云存储 重要说明,本人已不做java多年,请不要加qq再问我java的

七牛云存储还有一个独一无二的特性——支持用户将文件从客户端直传到云服务器中

目前七牛已经拥有数千家客户,你会发现其中有很多都是像知乎.Weico.Camera360.美图秀秀.蝉游记和Vida等UGC(用户产生内容)类产品,尤其是在图片社交领域.这是因为,除了我在前面所说的“云存储”比传统方案更节省成本外,七牛云存储还有一个独一无二的特性——支持用户将文件从客户端直传到云服务器中.因为我看过蝉游记CTO Quake撰文写过这一特性,所以就直接引用他的原文来做说明: 常见的云存储上传文件流程一般如下: 用户 =>应用服务器 =>云存储提供商 这样多了一次上传的流程,和本

七牛云存储android客户端及java服务端代码编写

前一篇博客提到让我很伤心的c应用,由于是一款供用户上传图片的应用,因此必须解决图片存储问题,如果直接将图片存储至服务器,当用户上传图片较多,服务器空间将很快吃紧,同时也没有那么大的带宽,现实中我买的阿里云服务器是最低配置,数据盘才20G,带宽才1M,如果用这样配置的服务器做图片存储,那实在太扯了.于是很自然的想到用图片云存储服务器,通过不断查找资料,最后将目标定位在七牛云和又拍云.在做选择时,主要对比了两者之间的价格及技术优势,也看了很多相关话题讨论,个人认为这两者无论从技术方案还是产品价格,都