update vendor

This commit is contained in:
deepzz0
2017-07-11 23:50:01 +08:00
parent e1ec5cd08a
commit c18d9c0bef
107 changed files with 8347 additions and 126 deletions

View File

@@ -1,16 +1,19 @@
language: go
before_script:
- export QINIU_KODO_TEST=1
- export QINIU_ACCESS_KEY="QWYn5TFQsLLU1pL5MFEmX3s5DmHdUThav9WyOWOm"
- export QINIU_SECRET_KEY="Bxckh6FA-Fbs9Yt3i3cbKVK22UPBmAOHJcL95pGz"
- export QINIU_TEST_BUCKET="gosdk"
- export QINIU_TEST_DOMAIN="gosdk.qiniudn.com"
go:
- 1.7
- 1.8
- master
env:
global:
- QINIU_KODO_TEST=1
- QINIU_ACCESS_KEY="QWYn5TFQsLLU1pL5MFEmX3s5DmHdUThav9WyOWOm"
- QINIU_SECRET_KEY="Bxckh6FA-Fbs9Yt3i3cbKVK22UPBmAOHJcL95pGz"
- QINIU_TEST_BUCKET="gosdk"
- QINIU_TEST_DOMAIN="gosdk.qiniudn.com"
install:
- export QINIU_SRC=$HOME/gopath/src
- mkdir -p $QINIU_SRC/qiniupkg.com
- mv $QINIU_SRC/github.com/qiniu/api.v7 $QINIU_SRC/qiniupkg.com/api.v7
- git clone --depth=50 git://github.com/qiniu/x.git $QINIU_SRC/qiniupkg.com/x
- export TRAVIS_BUILD_DIR=$QINIU_SRC/qiniupkg.com/api.v7
- mkdir -p $QINIU_SRC/github.com/qiniu
- export TRAVIS_BUILD_DIR=$QINIU_SRC/github.com/qiniu/api.v7
- cd $TRAVIS_BUILD_DIR
- go get golang.org/x/net/context
- go get github.com/qiniu/x

14
vendor/qiniupkg.com/api.v7/README.md generated vendored
View File

@@ -1,14 +1,14 @@
qiniupkg.com/api.v7 (Qiniu Go SDK v7.x)
github.com/qiniu/api.v7 (Qiniu Go SDK v7.x)
===============
[![Build Status](https://travis-ci.org/qiniu/api.v7.svg?branch=develop)](https://travis-ci.org/qiniu/api.v7) [![GoDoc](https://godoc.org/qiniupkg.com/api.v7?status.svg)](https://godoc.org/qiniupkg.com/api.v7)
[![Build Status](https://travis-ci.org/qiniu/api.v7.svg?branch=develop)](https://travis-ci.org/qiniu/api.v7) [![GoDoc](https://godoc.org/github.com/qiniu/api.v7?status.svg)](https://godoc.org/github.com/qiniu/api.v7)
[![Qiniu Logo](http://open.qiniudn.com/logo.png)](http://qiniu.com/)
# 下载
```
go get -u qiniupkg.com/api.v7
go get -u github.com/qiniu/api.v7
```
如果碰到golang.org/x/net/context 不能下载,请把 http://devtools.qiniu.com/golang.org.x.net.context.tgz 下载到代码目录下并解压到src目录或者直接下载全部 http://devtools.qiniu.com/qiniu_api_v7.tgz。
@@ -16,10 +16,10 @@ go get -u qiniupkg.com/api.v7
## KODO Blob Storage (七牛对象存储)
* [qiniupkg.com/api.v7/kodo](http://godoc.org/qiniupkg.com/api.v7/kodo)
* [qiniupkg.com/api.v7/kodocli](http://godoc.org/qiniupkg.com/api.v7/kodocli)
* [github.com/qiniu/api.v7/kodo](http://godoc.org/github.com/qiniu/api.v7/kodo)
* [github.com/qiniu/api.v7/kodocli](http://godoc.org/github.com/qiniu/api.v7/kodocli)
如果您是在业务服务器(服务器端)调用七牛云存储的服务,请使用 [qiniupkg.com/api.v7/kodo](http://godoc.org/qiniupkg.com/api.v7/kodo)。
如果您是在业务服务器(服务器端)调用七牛云存储的服务,请使用 [github.com/qiniu/api.v7/kodo](http://godoc.org/github.com/qiniu/api.v7/kodo)。
如果您是在客户端比如Android/iOS 设备、Windows/Mac/Linux 桌面环境)调用七牛云存储的服务,请使用 [qiniupkg.com/api.v7/kodocli](http://godoc.org/qiniupkg.com/api.v7/kodocli)。注意,在这种场合下您不应该在任何地方配置 AccessKey/SecretKey。泄露 AccessKey/SecretKey 如同泄露您的用户名/密码一样十分危险,会影响您的数据安全。
如果您是在客户端比如Android/iOS 设备、Windows/Mac/Linux 桌面环境)调用七牛云存储的服务,请使用 [github.com/qiniu/api.v7/kodocli](http://godoc.org/github.com/qiniu/api.v7/kodocli)。注意,在这种场合下您不应该在任何地方配置 AccessKey/SecretKey。泄露 AccessKey/SecretKey 如同泄露您的用户名/密码一样十分危险,会影响您的数据安全。

View File

@@ -1,13 +1,11 @@
package api
import (
. "context"
"sync"
"time"
"qiniupkg.com/x/rpc.v7"
"sync"
. "golang.org/x/net/context"
"github.com/qiniu/x/rpc.v7"
)
const DefaultApiHost string = "http://uc.qbox.me"

View File

@@ -7,8 +7,8 @@ import (
"io"
"net/http"
. "qiniupkg.com/api.v7/conf"
"qiniupkg.com/x/bytes.v7/seekable"
. "github.com/qiniu/api.v7/conf"
"github.com/qiniu/x/bytes.v7/seekable"
)
// ----------------------------------------------------------

View File

@@ -8,8 +8,8 @@ import (
"net/http"
"strings"
"qiniupkg.com/api.v7/auth/qbox"
. "qiniupkg.com/api.v7/conf"
"github.com/qiniu/api.v7/auth/qbox"
. "github.com/qiniu/api.v7/conf"
)
var (

View File

@@ -9,7 +9,7 @@ import (
"time"
"qiniupkg.com/api.v7/kodo"
"github.com/qiniu/api.v7/kodo"
)
var (

View File

@@ -1,21 +1,21 @@
/*
qiniupkg.com/api.v7/fusion提供了七牛CDN的API功能
github.com/qiniu/api.v7/cdn 提供了七牛CDN的API功能
首先,我们要配置下 AccessKey/SecretKey,
import "qiniupkg.com/api.v7/kodo"
import "github.com/qiniu/api.v7/kodo"
kodo.SetMac("ak", "sk")
设置了AccessKey/SecretKey 就可以使用cdn的各类功能
比如我们要生成一个带时间戳防盗链的链接:
q :=url.Values{}// url.Values 请求参数
link, err := cdn.CreateTimestampAntiLeechUrl("http://www.qiniu.com", "abc/bcc/aa-s.mp4", nil, "encryptedkey", 20)
link, err := cdn.CreateTimestampAntileechURL(""http://www.qiniu.com/abc/bcc/aa-s.mp4?x=2&y=3", "encryptedkey", 20)
if err != nil {
fmt.Println(err)
}
fmt.Println(link)
又或者我们要列出CDN日志及其下载地址
resp, err := cdn.GetLogOfDomain("2016-12-26", "x-mas.com")
resp, err := cdn.GetCdnLogList("2016-12-26", "x-mas.com")
if err != nil {
fmt.Println(err)
}

View File

@@ -7,7 +7,7 @@ import (
"net/http"
"strings"
"qiniupkg.com/api.v7/auth/qbox"
"github.com/qiniu/api.v7/auth/qbox"
)
const (

View File

@@ -5,7 +5,7 @@ import (
"reflect"
"testing"
"qiniupkg.com/api.v7/kodo"
"github.com/qiniu/api.v7/kodo"
)
func init() {

View File

@@ -5,8 +5,8 @@ import (
"runtime"
"syscall"
"qiniupkg.com/x/ctype.v7"
"qiniupkg.com/x/rpc.v7"
"github.com/qiniu/x/ctype.v7"
"github.com/qiniu/x/rpc.v7"
)
var version = "7.1.0"
@@ -36,4 +36,3 @@ func init() {
}
// ----------------------------------------------------------

View File

@@ -4,7 +4,7 @@ import (
"strings"
"testing"
"qiniupkg.com/x/rpc.v7"
"github.com/qiniu/x/rpc.v7"
)
func TestUA(t *testing.T) {

20
vendor/qiniupkg.com/api.v7/doc.go generated vendored
View File

@@ -1,23 +1,23 @@
/*
qiniupkg.com/api.v7 是七牛 Go 语言 SDK v7.x 版本
github.com/qiniu/api.v7 是七牛 Go 语言 SDK v7.x 版本
七牛对象存储,我们取了一个好听的名字,叫 KODO Blob Storage。要使用它你主要和以下两个包打交道
import "qiniupkg.com/api.v7/kodo"
import "qiniupkg.com/api.v7/kodocli"
import "github.com/qiniu/api.v7/kodo"
import "github.com/qiniu/api.v7/kodocli"
如果您是在业务服务器(服务器端)调用七牛云存储的服务,请使用 qiniupkg.com/api.v7/kodo。
如果您是在业务服务器(服务器端)调用七牛云存储的服务,请使用 github.com/qiniu/api.v7/kodo。
如果您是在客户端比如Android/iOS 设备、Windows/Mac/Linux 桌面环境)调用七牛云存储的服务,请使用 qiniupkg.com/api.v7/kodocli。
如果您是在客户端比如Android/iOS 设备、Windows/Mac/Linux 桌面环境)调用七牛云存储的服务,请使用 github.com/qiniu/api.v7/kodocli。
注意,在这种场合下您不应该在任何地方配置 AccessKey/SecretKey。泄露 AccessKey/SecretKey 如同泄露您的用户名/密码一样十分危险,
会影响您的数据安全。
*/
package api
import (
_ "qiniupkg.com/api.v7/auth/qbox"
_ "qiniupkg.com/api.v7/conf"
_ "qiniupkg.com/api.v7/kodo"
_ "qiniupkg.com/api.v7/kodocli"
_ "github.com/qiniu/api.v7/auth/qbox"
_ "github.com/qiniu/api.v7/cdn"
_ "github.com/qiniu/api.v7/conf"
_ "github.com/qiniu/api.v7/kodo"
_ "github.com/qiniu/api.v7/kodocli"
)

View File

@@ -1,20 +1,20 @@
package kodo
import (
. "context"
"encoding/base64"
"fmt"
"io"
"net/url"
"strconv"
. "golang.org/x/net/context"
"qiniupkg.com/api.v7/api"
"qiniupkg.com/x/log.v7"
"github.com/qiniu/api.v7/api"
"github.com/qiniu/x/log.v7"
)
// ----------------------------------------------------------
// 批量操作。
// Batch 批量操作。
//
func (p *Client) Batch(ctx Context, ret interface{}, op []string) (err error) {
@@ -29,7 +29,20 @@ type Bucket struct {
Name string
}
// 取七牛空间bucket)的对象实例。
// Buckets 获取所有地区的所有空间(bucket)
//
// shared 是否获取所有授权获得空间true为包含授权空间
//
func (p *Client) Buckets(ctx Context, shared bool) (buckets []string, err error) {
if shared {
err = p.Call(ctx, &buckets, "POST", p.RSHost+"/buckets?shared=trye")
} else {
err = p.Call(ctx, &buckets, "POST", p.RSHost+"/buckets")
}
return
}
// Bucket 取七牛空间bucket的对象实例。
//
// name 是创建该七牛空间bucket时采用的名称。
//
@@ -41,6 +54,7 @@ func (p *Client) Bucket(name string) Bucket {
return b
}
// BucketWithSafe 确认空间存在并获取七牛空间bucket的对象实例。
func (p *Client) BucketWithSafe(name string) (Bucket, error) {
var info api.BucketInfo
if len(p.UpHosts) == 0 {
@@ -56,6 +70,7 @@ func (p *Client) BucketWithSafe(name string) (Bucket, error) {
return Bucket{info, p, name}, nil
}
// Entry 资源元信息
type Entry struct {
Hash string `json:"hash"`
Fsize int64 `json:"fsize"`
@@ -65,7 +80,7 @@ type Entry struct {
EndUser string `json:"endUser"`
}
// 取文件属性。
// Stat 取文件属性。
//
// ctx 是请求的上下文。
// key 是要访问的文件的访问路径。
@@ -75,7 +90,7 @@ func (p Bucket) Stat(ctx Context, key string) (entry Entry, err error) {
return
}
// 删除一个文件。
// Delete 删除一个文件。
//
// ctx 是请求的上下文。
// key 是要删除的文件的访问路径。
@@ -84,7 +99,7 @@ func (p Bucket) Delete(ctx Context, key string) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URIDelete(p.Name, key))
}
// 移动一个文件。
// Move 移动一个文件。
//
// ctx 是请求的上下文。
// keySrc 是要移动的文件的旧路径。
@@ -94,7 +109,7 @@ func (p Bucket) Move(ctx Context, keySrc, keyDest string) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URIMove(p.Name, keySrc, p.Name, keyDest))
}
// 跨空间bucket移动一个文件。
// MoveEx 跨空间bucket移动一个文件。
//
// ctx 是请求的上下文。
// keySrc 是要移动的文件的旧路径。
@@ -105,7 +120,7 @@ func (p Bucket) MoveEx(ctx Context, keySrc, bucketDest, keyDest string) (err err
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URIMove(p.Name, keySrc, bucketDest, keyDest))
}
// 复制一个文件。
// Copy 复制一个文件。
//
// ctx 是请求的上下文。
// keySrc 是要复制的文件的源路径。
@@ -115,7 +130,7 @@ func (p Bucket) Copy(ctx Context, keySrc, keyDest string) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URICopy(p.Name, keySrc, p.Name, keyDest))
}
// 修改文件的MIME类型。
// ChangeMime 修改文件的MIME类型。
//
// ctx 是请求的上下文。
// key 是要修改的文件的访问路径。
@@ -125,17 +140,17 @@ func (p Bucket) ChangeMime(ctx Context, key, mime string) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URIChangeMime(p.Name, key, mime))
}
// 修改文件的存储类型。
// ChangeType 修改文件的存储类型。
//
// ctx 是请求的上下文。
// key 是要修改的文件的访问路径。
// fileType 是要设置的新存储类型。
// fileType 是要设置的新存储类型。0 表示标准存储1 表示低频存储。
//
func (p Bucket) ChangeType(ctx Context, key string, fileType int) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URIChangeType(p.Name, key, fileType))
}
// 从网上抓取一个资源并存储到七牛空间bucket中。
// Fetch 从网上抓取一个资源并存储到七牛空间bucket中。
//
// ctx 是请求的上下文。
// key 是要存储的文件的访问路径。如果文件已经存在则覆盖。
@@ -145,7 +160,7 @@ func (p Bucket) Fetch(ctx Context, key string, url string) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.IoHost+uriFetch(p.Name, key, url))
}
// 更新文件生命周期
// DeleteAfterDays 更新文件生命周期
//
// ctx 是请求的上下文。
// key 是要更新的文件的访问路径。
@@ -155,8 +170,104 @@ func (p Bucket) DeleteAfterDays(ctx Context, key string, days int) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.RSHost+URIDeleteAfterDays(p.Name, key, days))
}
// Image 设置镜像源
//
// srcSiteURL 镜像源的访问域名。必须设置为形如 `http://source.com/` 或 `http://114.114.114.114/` 的字符串
// host 回源时使用的 Host 头部值
//
// 镜像源地址支持两种格式:
// 格式 1`http(s)://绑定域名/源站资源相对路径`
// 格式 2`http(s)://绑定 IP/源站资源相对路径`
//
func (p Bucket) Image(ctx Context, srcSiteURL, host string) (err error) {
return p.Conn.Call(ctx, nil, "POST", "http://pu.qbox.me:10200"+URIImage(p.Name, srcSiteURL, host))
}
// UnImage 取消镜像源
//
func (p Bucket) UnImage(ctx Context) (err error) {
return p.Conn.Call(ctx, nil, "POST", "http://pu.qbox.me:10200"+URIUnImage(p.Name))
}
// Prefetch 镜像资源更新
//
// key 被抓取资源名称
//
func (p Bucket) Prefetch(ctx Context, key string) (err error) {
return p.Conn.Call(ctx, nil, "POST", p.Conn.IoHost+URIPrefetch(p.Name, key))
}
// PfopResult pfop返回信息
type PfopResult struct {
PersistentID string `json:"persistentId,omitempty"`
}
// FopRet 持久化云处理结果
type FopRet struct {
ID string `json:"id"`
Code int `json:"code"`
Desc string `json:"desc"`
InputBucket string `json:"inputBucket,omitempty"`
InputKey string `json:"inputKey,omitempty"`
Pipeline string `json:"pipeline,omitempty"`
Reqid string `json:"reqid,omitempty"`
Items []FopResult
}
// FopResult 云处理操作列表,包含每个云处理操作的状态信息
type FopResult struct {
Cmd string `json:"cmd"`
Code int `json:"code"`
Desc string `json:"desc"`
Error string `json:"error,omitempty"`
Hash string `json:"hash,omitempty"`
Key string `json:"key,omitempty"`
Keys []string `json:"keys,omitempty"`
}
// Pfop 持久化数据处理
//
// bucket 资源空间
// key 源资源名
// fops 云处理操作列表,用`;``分隔,如:`avthumb/flv;saveas/cWJ1Y2tldDpxa2V5`是将上传的视频文件转码成flv格式后存储为 qbucket:qkey ,其中 cWJ1Y2tldDpxa2V5 是 qbucket:qkey 的URL安全的Base64编码结果。
// notifyURL 处理结果通知接收 URL七牛将会向你设置的 URL 发起 Content-Type: application/json 的 POST 请求。
// pipeline 为空则表示使用公用队列,处理速度比较慢。建议指定私有队列,转码的时候使用独立的计算资源。
// force 强制执行数据处理。当服务端发现 fops 指定的数据处理结果已经存在,那就认为已经处理成功,避免重复处理浪费资源。本字段设为 `true`,则可强制执行数据处理并覆盖原结果。
//
func (p *Client) Pfop(ctx Context, bucket, key, fops, notifyURL, pipeline string, force bool) (persistentID string, err error) {
pfopParams := map[string][]string{
"bucket": []string{bucket},
"key": []string{key},
"fops": []string{fops},
}
if notifyURL != "" {
pfopParams["notifyURL"] = []string{notifyURL}
}
if pipeline != "" {
pfopParams["pipeline"] = []string{pipeline}
}
if force {
pfopParams["force"] = []string{"1"}
}
var ret PfopResult
err = p.CallWithForm(ctx, &ret, "POST", "http://api.qiniu.com/pfop/", pfopParams)
if err != nil {
return
}
persistentID = ret.PersistentID
return
}
// Prefop 持久化处理状态查询
func (p *Client) Prefop(ctx Context, persistentID string) (ret FopRet, err error) {
err = p.Call(ctx, &ret, "GET", "http://api.qiniu.com/status/get/prefop?id="+persistentID)
return
}
// ----------------------------------------------------------
// ListItem List借口返回结果
type ListItem struct {
Key string `json:"key"`
Hash string `json:"hash"`
@@ -166,7 +277,7 @@ type ListItem struct {
EndUser string `json:"endUser"`
}
// 首次请求,请将 marker 设置为 ""。
// List 首次请求,请将 marker 设置为 ""。
// 无论 err 值如何,均应该先看 entries 是否有内容。
// 如果后续没有更多数据err 返回 EOFmarkerOut 返回 ""(但不通过该特征来判断是否结束)。
//
@@ -217,6 +328,7 @@ type BatchStatItemRet struct {
Code int `json:"code"`
}
// BatchStat 批量取文件属性
func (p Bucket) BatchStat(ctx Context, keys ...string) (ret []BatchStatItemRet, err error) {
b := make([]string, len(keys))
@@ -232,6 +344,7 @@ type BatchItemRet struct {
Code int `json:"code"`
}
// BatchDelete 批量删除
func (p Bucket) BatchDelete(ctx Context, keys ...string) (ret []BatchItemRet, err error) {
b := make([]string, len(keys))
@@ -247,6 +360,7 @@ type KeyPair struct {
Dest string
}
// BatchMove 批量移动文件
func (p Bucket) BatchMove(ctx Context, entries ...KeyPair) (ret []BatchItemRet, err error) {
b := make([]string, len(entries))
@@ -257,6 +371,7 @@ func (p Bucket) BatchMove(ctx Context, entries ...KeyPair) (ret []BatchItemRet,
return
}
// BatchCopy 批量复制文件
func (p Bucket) BatchCopy(ctx Context, entries ...KeyPair) (ret []BatchItemRet, err error) {
b := make([]string, len(entries))
@@ -305,4 +420,16 @@ func URIDeleteAfterDays(bucket, key string, days int) string {
return fmt.Sprintf("/deleteAfterDays/%s/%d", encodeURI(bucket+":"+key), days)
}
func URIImage(bucket, srcSiteURL, host string) string {
return fmt.Sprintf("/image/%s/from/%s/host/%s", bucket, encodeURI(srcSiteURL), encodeURI(host))
}
func URIUnImage(bucket string) string {
return fmt.Sprintf("/unimage/%s", bucket)
}
func URIPrefetch(bucket, key string) string {
return fmt.Sprintf("/prefetch/%s", encodeURI(bucket+":"+key))
}
// ----------------------------------------------------------

View File

@@ -1,5 +1,5 @@
/*
qiniupkg.com/api.v7/kodo 提供了在您的业务服务器(服务端)调用七牛云存储服务的能力
github.com/qiniu/api.v7/kodo 提供了在您的业务服务器(服务端)调用七牛云存储服务的能力
首先,我们要配置下 AccessKey/SecretKey这可以在七牛 Portal 中查到:
@@ -7,7 +7,7 @@
然后我们创建一个 Client 对象:
zone := 0 // 您空间(Bucket)所在的区域
zone := kodo.ZoneZ0 // 您空间(Bucket)所在的区域
c := kodo.New(zone, nil) // 用默认配置创建 Client
有了 Client你就可以操作您的空间(Bucket)了,比如我们要上传一个文件:

View File

@@ -3,10 +3,10 @@ package kodo
import (
"net/http"
"qiniupkg.com/api.v7/api"
"qiniupkg.com/api.v7/auth/qbox"
"qiniupkg.com/api.v7/conf"
"qiniupkg.com/x/rpc.v7"
"github.com/qiniu/api.v7/api"
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/api.v7/conf"
"github.com/qiniu/x/rpc.v7"
)
// ----------------------------------------------------------
@@ -16,6 +16,17 @@ type zoneConfig struct {
UpHosts []string
}
const (
// ZoneZ0 华东机房
ZoneZ0 = iota
// ZoneZ1 华北机房
ZoneZ1
// ZoneZ2 华南机房
ZoneZ2
// ZoneNa0 北美机房
ZoneNa0
)
var zones = []zoneConfig{
// z0 华东机房:
{

View File

@@ -40,7 +40,7 @@ func newBucket() (bucket Bucket) {
QINIU_KODO_TEST = os.Getenv("QINIU_KODO_TEST")
if skipTest() {
println("[INFO] QINIU_KODO_TEST: skipping to test qiniupkg.com/api.v7")
println("[INFO] QINIU_KODO_TEST: skipping to test github.com/qiniu/api.v7")
return
}

View File

@@ -7,9 +7,9 @@ import (
"strings"
"time"
"qiniupkg.com/api.v7/api"
"qiniupkg.com/api.v7/auth/qbox"
"qiniupkg.com/x/url.v7"
"github.com/qiniu/api.v7/api"
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/x/url.v7"
)
// ----------------------------------------------------------

View File

@@ -1,13 +1,12 @@
package kodo
import (
. "context"
"io"
"net/http"
"qiniupkg.com/api.v7/kodocli"
"qiniupkg.com/x/rpc.v7"
. "golang.org/x/net/context"
"github.com/qiniu/api.v7/kodocli"
"github.com/qiniu/x/rpc.v7"
)
type PutExtra kodocli.PutExtra
@@ -44,7 +43,7 @@ func (p Bucket) makeUploader() kodocli.Uploader {
// ----------------------------------------------------------
// 上传一个文件。
// Put 上传一个文件。
//
// ctx 是请求的上下文。
// ret 是上传成功后返回的数据。返回的是 PutRet 结构。可选,可以传 nil 表示不感兴趣。
@@ -61,7 +60,7 @@ func (p Bucket) Put(
return uploader.Put(ctx, ret, uptoken, key, data, size, (*kodocli.PutExtra)(extra))
}
// 上传一个文件。自动以文件的 hash 作为文件的访问路径key
// PutWithoutKey 上传一个文件。自动以文件的 hash 作为文件的访问路径key
//
// ctx 是请求的上下文。
// ret 是上传成功后返回的数据。返回的是 PutRet 结构。可选,可以传 nil 表示不感兴趣。
@@ -77,7 +76,7 @@ func (p Bucket) PutWithoutKey(
return uploader.PutWithoutKey(ctx, ret, uptoken, data, size, (*kodocli.PutExtra)(extra))
}
// 上传一个文件。
// PutFile 上传一个文件。
// 和 Put 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.Reader 来访问。
//
// ctx 是请求的上下文。
@@ -93,7 +92,7 @@ func (p Bucket) PutFile(
return uploader.PutFile(ctx, ret, uptoken, key, localFile, (*kodocli.PutExtra)(extra))
}
// 上传一个文件。自动以文件的 hash 作为文件的访问路径key
// PutFileWithoutKey 上传一个文件。自动以文件的 hash 作为文件的访问路径key
// 和 PutWithoutKey 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.Reader 来访问。
//
// ctx 是请求的上下文。
@@ -111,7 +110,7 @@ func (p Bucket) PutFileWithoutKey(
// ----------------------------------------------------------
// 上传一个文件,支持断点续传和分块上传。
// Rput 上传一个文件,支持断点续传和分块上传。
//
// ctx 是请求的上下文。
// ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody那么返回的数据结构是 PutRet 结构。
@@ -128,7 +127,7 @@ func (p Bucket) Rput(
return uploader.Rput(ctx, ret, uptoken, key, data, size, (*kodocli.RputExtra)(extra))
}
// 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径key
// RputWithoutKey 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径key
//
// ctx 是请求的上下文。
// ret 是上传成功后返回的数据。如果 uptoken 中没有设置 CallbackUrl 或 ReturnBody那么返回的数据结构是 PutRet 结构。
@@ -144,7 +143,7 @@ func (p Bucket) RputWithoutKey(
return uploader.RputWithoutKey(ctx, ret, uptoken, data, size, (*kodocli.RputExtra)(extra))
}
// 上传一个文件,支持断点续传和分块上传。
// RputFile 上传一个文件,支持断点续传和分块上传。
// 和 Rput 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。
//
// ctx 是请求的上下文。
@@ -161,7 +160,7 @@ func (p Bucket) RputFile(
return uploader.RputFile(ctx, ret, uptoken, key, localFile, (*kodocli.RputExtra)(extra))
}
// 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径key
// RputFileWithoutKey 上传一个文件,支持断点续传和分块上传。自动以文件的 hash 作为文件的访问路径key
// 和 RputWithoutKey 不同的只是一个通过提供文件路径来访问文件内容,一个通过 io.ReaderAt 来访问。
//
// ctx 是请求的上下文。

View File

@@ -1,5 +1,5 @@
/*
qiniupkg.com/api.v7/kodocli 提供了在客户端调用七牛云存储部分服务的能力
github.com/qiniu/api.v7/kodocli 提供了在客户端调用七牛云存储部分服务的能力
客户端严谨说是非可信环境主要是指在用户端执行的环境比如Android/iOS 设备、Windows/Mac/Linux 桌面环境、也包括浏览器(如果浏览器能够执行 Go 语言代码的话)。
@@ -7,11 +7,11 @@
第一个问题是如何上传文件。因为是在非可信环境,所以我们首先是要授予它有上传文件的能力。答案是给它颁发上传凭证。假设服务端也是 Go 语言,那么:
import "qiniupkg.com/api.v7/kodo"
import "github.com/qiniu/api.v7/kodo"
kodo.SetMac("your-access-key", "your-secret-key") // 配置 AccessKey/SecretKey
zone := 0
zone := kodo.ZoneZ0
c := kodo.New(zone, nil) // 创建一个 Client 对象
bucket := "your-bucket-name"

View File

@@ -3,10 +3,10 @@ package kodocli
import (
"net/http"
"qiniupkg.com/api.v7/api"
"qiniupkg.com/api.v7/conf"
"qiniupkg.com/x/rpc.v7"
"qiniupkg.com/x/url.v7"
"github.com/qiniu/api.v7/api"
"github.com/qiniu/api.v7/conf"
"github.com/qiniu/x/rpc.v7"
"github.com/qiniu/x/url.v7"
)
// ----------------------------------------------------------

View File

@@ -1,6 +1,7 @@
package kodocli
import (
. "context"
"encoding/base64"
"encoding/json"
"errors"
@@ -9,9 +10,7 @@ import (
"strings"
"sync"
"qiniupkg.com/x/xlog.v7"
. "golang.org/x/net/context"
"github.com/qiniu/x/xlog.v7"
)
// ----------------------------------------------------------

View File

@@ -1,6 +1,7 @@
package kodocli
import (
. "context"
"encoding/base64"
"fmt"
"hash/crc32"
@@ -8,11 +9,9 @@ import (
"net/http"
"strconv"
"qiniupkg.com/x/bytes.v7"
"qiniupkg.com/x/rpc.v7"
"qiniupkg.com/x/xlog.v7"
. "golang.org/x/net/context"
"github.com/qiniu/x/bytes.v7"
"github.com/qiniu/x/rpc.v7"
"github.com/qiniu/x/xlog.v7"
)
// ----------------------------------------------------------

View File

@@ -2,6 +2,7 @@ package kodocli
import (
"bytes"
. "context"
"fmt"
"hash/crc32"
"io"
@@ -12,8 +13,6 @@ import (
"path/filepath"
"strconv"
"strings"
. "golang.org/x/net/context"
)
// ----------------------------------------------------------