cos

package module
v0.0.0-...-6c2c4d2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 2, 2016 License: Apache-2.0 Imports: 19 Imported by: 0

README

qcloud_cos-golang

golang sdk for 腾讯云对象存储服务

GoDoc Build Status

安装

$ go get github.com/cxr29/cos-golang-sdk

举例

package main

import (
	"fmt"

	"github.com/cxr29/cos-golang-sdk"
)

func main() {
	c := cos.New("项目ID", "签名ID", "签名秘钥")

	f := c.Bucket("空间名称").Dir("目录名称").File("文件名称") // 链式调用

	// 上传本地文件
	result, err := f.Upload("本地文件名称", "文件属性") // 完整上传,适用于较小文件
	// result, err := f.Upload([]byte(`文件内容`), "文件属性") // 直接上传文件内容
	// result, _, err := f.UploadSlice("本地文件名称", "文件属性", 0, "") // 分片上传,适用于较大文件
	fmt.Println(result, err)

	// 查询文件状态
	stat, err := f.Stat()
	fmt.Println(stat, err)

	// 删除文件
	err = f.Delete()

	// 创建目录
	d := f.Dir().Bucket().Dir("新的目录名称") // 向上链式调用
	fmt.Println(d.Create("目录属性"))

	// 更新目录属性
	err = d.Update("新的目录属性")

	// 获取指定目录下文件列表
	fmt.Println(d.List(nil))

	ldp := cos.NewListDirParams().Num(10).Order(1) // 可复用,如重新设置前一页返回的透传字段

	// 获取指定目录下以"abc"开头的文件,每页10个且反序
	fmt.Println(d.PrefixSearch("abc", ldp))

	// 删除目录
	err = d.Delete()
}

Documentation

Overview

Package cos 腾讯云平台对象存储服务Golang开发包

Index

Constants

View Source
const Version = "0.0.1"

Version SDK版本号

Variables

View Source
var (
	// SliceSize 默认分片大小
	SliceSize = 512 * 1024
	// SignSeconds 默认多次签名过期秒数
	SignSeconds = 60
	// UserAgent 默认用户代理
	UserAgent = "Qcloud-Cos-GOLANG/" + Version +
		" (" + runtime.GOOS + "-" + runtime.GOARCH + "-" + runtime.Version() + ")"
	// EndPoint 结尾无斜杠
	EndPoint = "http://web.file.myqcloud.com/files/v1"
)

Functions

func EscapePath

func EscapePath(name string) string

EscapePath 转义路径,斜杠(/)和波浪号(~)不转义,移除开头和结尾的斜杠(/)

Types

type Bucket

type Bucket struct {
	// contains filtered or unexported fields
}

Bucket 表示文件资源的组织管理单元

func (Bucket) Dir

func (b Bucket) Dir(name string) Dir

Dir 根据目录名称返回Bucket下的目录结构体

支持多级目录;如果目录名称为空,则表示Bucket的根目录

type COS

type COS struct {
	// contains filtered or unexported fields
}

COS 表示对象存储服务

func New

func New(appID, secretID, secretKey string) COS

New 根据项目ID、签名ID和签名秘钥返回一个COS结构体

func (COS) Bucket

func (cos COS) Bucket(name string) Bucket

Bucket 根据Bucket名称返回COS下的Bucket结构体

type CreateDirResult

type CreateDirResult struct {
	Ctime        string `json:"ctime"`
	ResourcePath string `json:"resource_path"`
}

CreateDirResult 表示创建目录的返回数据

type Dir

type Dir struct {
	// contains filtered or unexported fields
}

Dir 表示Bucket下的目录

func (Dir) Bucket

func (d Dir) Bucket() Bucket

Bucket 返回目录所在的Bucket

func (Dir) Create

func (d Dir) Create(bizAttr string) (*CreateDirResult, error)

Create 创建目录

bizAttr 目录属性

func (Dir) Delete

func (d Dir) Delete() error

Delete 删除目录

func (Dir) File

func (d Dir) File(name string) File

File 根据文件名称返回目录下的文件结构体

文件名称不能为空

func (Dir) List

func (d Dir) List(params ListDirParams) (*ListDirResult, error)

List 目录列表

params 如果为nil,则使用默认参数

func (Dir) Name

func (d Dir) Name() string

Name 返回已转义的目录名称;如果不为空,始终含末尾斜杠(/)

func (Dir) PrefixSearch

func (d Dir) PrefixSearch(prefix string, params ListDirParams) (*ListDirResult, error)

PrefixSearch 前缀搜索

prefix 列出含此前缀的所有文件,如果为空则获取目录列表
params 如果为nil,则使用默认参数

func (Dir) Sign

func (d Dir) Sign(seconds int) string

Sign 根据seconds过期秒数返回目录的多次(大于0时)签名或单次(小于等于0时)签名

func (Dir) Stat

func (d Dir) Stat() (*PathInfo, error)

Stat 查询目录信息

func (Dir) Update

func (d Dir) Update(bizAttr string) error

Update 更新目录信息

bizAttr 目录属性

type File

type File struct {
	// contains filtered or unexported fields
}

File 表示文件对象

func (File) Delete

func (f File) Delete() error

Delete 删除文件

func (File) Dir

func (f File) Dir() Dir

Dir 返回文件所在目录

func (File) FullName

func (f File) FullName() string

FullName 返回已转义的目录名称加文件名称

func (File) Name

func (f File) Name() string

Name 返回已转义的文件名称,无首尾斜杠(/)

func (File) Sign

func (f File) Sign(seconds int) string

Sign 根据seconds过期秒数返回文件的多次(大于0时)签名或单次(小于等于0时)签名

func (File) Stat

func (f File) Stat() (*PathInfo, error)

Stat 查询文件信息

func (File) Update

func (f File) Update(bizAttr string) error

Update 更新文件信息

bizAttr 文件属性

func (File) Upload

func (f File) Upload(content interface{}, bizAttr string) (*UploadResult, error)

Upload 根据内容直接上传,用于较小文件(一般小于8MB)

bizAttr 文件属性
如果content类型为string,作为本地文件名读取其内容后上传;如果需要直接上传字符串,请转换为[]byte或使用strings.Reader进行包装
如果content类型为[]byte,直接上传
如果content类型为*byte.Buffer,直接上传其缓冲区内容
如果content类型为io.Reader,读取内容后上传
不支持其它content类型

func (File) UploadSlice

func (f File) UploadSlice(localFile, bizAttr string, sliceSize int, session string) (*UploadResult, string, error)

UploadSlice 分片上传本地文件,用于较大文件(一般大于8MB)

localFile 本地文件名
bizAttr 文件属性
sliceSize 设置分片上传大小,如果小于等于0则使用默认分片大小
session 用于断点续传;如果上传失败,则第二个string返回值为这次上传的session(可能为空),下次传入该值进行断点续传

type ListDirParams

type ListDirParams map[string]string

ListDirParams 表示目录列表和前缀搜索的参数

func NewListDirParams

func NewListDirParams() ListDirParams

NewListDirParams 返回目录列表和前缀搜索的默认参数

func (ListDirParams) Context

func (m ListDirParams) Context(context string) ListDirParams

Context 透传字段,查看第一页,则传空字符串;若翻页,需要将前一页返回的Context透传到参数中

func (ListDirParams) Num

func (m ListDirParams) Num(num int) ListDirParams

Num 查询的数量,默认20

func (ListDirParams) Order

func (m ListDirParams) Order(order int) ListDirParams

Order 可选0正序或1反序,默认0正序

func (ListDirParams) Pattern

func (m ListDirParams) Pattern(pattern string) ListDirParams

Pattern 可选eListBoth或eListDirOnly或eListFileOnly,默认eListBoth

type ListDirResult

type ListDirResult struct {
	Context   string `json:"context"`
	DirCount  int    `json:"dircount"`
	FileCount int    `json:"filecount"`
	HasMore   bool   `json:"has_more"`
	Infos     []*PathInfo
}

ListDirResult 表示目录列表和前缀搜索的返回数据

type PathInfo

type PathInfo struct {
	AccessURL string `json:"access_url"`
	BizAttr   string `json:"biz_attr"`
	Ctime     string `json:"ctime"`
	FileLen   int    `json:"filelen"`
	FileSize  int    `json:"filesize"`
	Mtime     string `json:"mtime"`
	Name      string `json:"name"`
	Sha       string `json:"sha"`
	SourceURL string `json:"source_url"`
}

PathInfo 表示目录信息或文件信息

type Reply

type Reply struct {
	Code    int              `json:"code"`
	Message string           `json:"message"`
	Data    *json.RawMessage `json:"data"`
}

Reply 表示COS RESTful API的响应内容

func (*Reply) Error

func (r *Reply) Error() string

type UploadResult

type UploadResult struct {
	AccessURL    string `json:"access_url"`
	ResourcePath string `json:"resource_path"`
	SourceURL    string `json:"source_url"`
	URL          string `json:"url"`
}

UploadResult 表示上传文件的返回数据

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL