Categorygithub.com/xld4coding/go-cos
modulepackage
1.0.3
Repository: https://github.com/xld4coding/go-cos.git
Documentation: pkg.go.dev

# README

go-cos

腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK(API 版本:V5 版本的 XML API)。

Build Status Coverage Status Go Report Card GoDoc

Install

go get -u github.com/mozillazg/go-cos

推荐使用 go mod 之类的技术指定使用的 go-cos 包版本号。

Usage

package main

import (
	"context"
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
	"os"

	"github.com/mozillazg/go-cos"
)

func main() {
	b, _ := cos.NewBaseURL("https://<bucket>-<appid>.cos.<region>.myqcloud.com")
	c := cos.NewClient(b, &http.Client{
		Transport: &cos.AuthorizationTransport{
			SecretID:  os.Getenv("COS_SECRETID"),
			SecretKey: os.Getenv("COS_SECRETKEY"),
		},
	})

	name := "test/hello.txt"
	resp, err := c.Object.Get(context.Background(), name, nil)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	bs, _ := ioutil.ReadAll(resp.Body)
	fmt.Printf("%s\n", string(bs))
}

备注:

  • SDK 不会自动设置超时时间,用户根据需要设置合适的超时时间(比如,设置 http.ClientTimeout 字段或者 Transport 字段之类的)或在需要时实现所需的超时机制(比如,通过 context 包实现)。
  • 所有的 API 在 _example 目录下都有对应的使用示例(示例程序中用到的 debug 包只是调试用的不是必需的依赖)。

TODO

Service API:

Bucket API:

Object API:

其他功能:

# Packages

No description provided by the author

# Functions

AddAuthorizationHeader 给 req 增加签名信息.
NewAuthTime 生成 AuthTime 的便捷函数 expire: 从现在开始多久过期.
NewBaseURL 生成 BaseURL.
NewBucketURL 生成 BaseURL 所需的 BucketURL bucketName: bucket 名称 AppID: 应用 ID Region: 区域代码,详见 https://cloud.tencent.com/document/product/436/6224 secure: 是否使用 https.
NewClient returns a new COS API client.

# Constants

MethodBucketDelete method name of Bucket.Delete.
MethodBucketDeleteCORS method name of Bucket.DeleteCORS.
MethodBucketDeleteLifecycle method name of Bucket.DeleteLifecycle.
MethodBucketGet method name of Bucket.Get.
MethodBucketGetACL method name of Bucket.GetACL.
MethodBucketGetCORS method name of Bucket.GetCORS.
MethodBucketGetLifecycle method name of Bucket.GetLifecycle.
MethodBucketGetLocation method name of Bucket.GetLocation.
MethodBucketHead method name of Bucket.Head.
MethodBucketListMultipartUploads method name of Bucket.ListMultipartUploads.
MethodBucketPut method name of Bucket.Put.
MethodBucketPutACL method name of Bucket.PutACL.
MethodBucketPutCORS method name of Bucket.PutCORS.
MethodBucketPutLifecycle method name of Bucket.PutLifecycle.
MethodDeleteTagging method name of Bucket.DeleteTagging.
MethodGetTagging method name of Bucket.GetTagging.
MethodObjectAbortMultipartUpload method name of Object.AbortMultipartUpload.
MethodObjectAppend method name of Object.Append.
MethodObjectCompleteMultipartUpload method name of Object.CompleteMultipartUpload.
MethodObjectCopy method name of Object.Copy.
MethodObjectDelete method name of Object.Delete.
MethodObjectDeleteMulti method name of Object.DeleteMulti.
MethodObjectGet method name of Object.Get.
MethodObjectGetACL method name of Object.GetACL.
MethodObjectHead method name of Object.Head.
MethodObjectInitiateMultipartUpload method name of Object.InitiateMultipartUpload.
MethodObjectListParts method name of Object.ListParts.
MethodObjectListPartsWithOpt method name of Object.ListPartsWithOpt.
MethodObjectOptions method name of Object.Options.
MethodObjectPut method name of Object.Put.
MethodObjectPutACL method name of Object.PutACL.
MethodObjectUploadPart method name of Object.UploadPart.
MethodPutTagging method name of Bucket.PutTagging.
MethodServiceGet method name of Service.Get.
ObjectTypeAppendable : appendable.
ObjectTypeNormal : normal.
PermissionFullControl 权限值: FULL_CONTROL.
PermissionRead 权限值: READ.
PermissionWrite 权限值: WRITE.
ServerSideEncryptionAES256 服务端加密算法: AES256.
StorageClassArchive Object 的存储级别: ARCHIVE.
StorageClassStandard Object 的存储级别: STANDARD.
StorageClassStandardTA Object 的存储级别: STANDARD_IA.
Version ...

# Structs

ACLGrant ...
ACLGrantee ...
ACLHeaderOptions ...
ACLXml ..
Auth 签名相关的认证信息.
AuthorizationTransport 给请求增加 Authorization header.
AuthTime 用于生成签名所需的 q-sign-time 和 q-key-time 相关参数.
BaseURL 访问各 API 所需的基础 URL.
Bucket ...
BucketCORSRule ..
BucketGetCORSResult ..
BucketGetLifecycleResult ..
BucketGetLocationResult ...
BucketGetOptions 请求参数 https://cloud.tencent.com/document/product/436/7734.
BucketGetResult 响应结果 https://cloud.tencent.com/document/product/436/7734.
BucketGetTaggingResult ...
BucketLifecycleAbortIncompleteMultipartUpload ...
BucketLifecycleExpiration ...
BucketLifecycleFilter ...
BucketLifecycleRule ..
BucketLifecycleTransition ...
BucketPutACLOptions ..
BucketPutCORSOptions ..
BucketPutLifecycleOptions ...
BucketPutTaggingOptions ...
BucketTaggingTag ...
Caller 方法调用信息,用于 Sender 和 ResponseParser 中判断是来自哪个方法的调用.
A Client manages communication with the COS API.
CompleteMultipartUploadOptions ..
CompleteMultipartUploadResult ..
DefaultResponseParser 是默认的 ResponseParser 实现.
DefaultSender 是基于 http.Client 的默认 Sender 实现.
ErrorResponse 包含 COS HTTP API 返回的错误信息 https://cloud.tencent.com/document/product/436/7730.
InitiateMultipartUploadOptions ...
InitiateMultipartUploadResult ...
ListMultipartUploadsOptions ..
ListMultipartUploadsResult ..
MultipartUpload 每个 Multipart Upload 的信息.
Object ...
ObjectCopyHeaderOptions ..
ObjectCopyOptions ..
ObjectCopyResult ...
ObjectDeleteMultiOptions ..
ObjectDeleteMultiResult ..
ObjectGetOptions ..
ObjectHeadOptions ...
ObjectListPartsOptions ...
ObjectListPartsResult ..
ObjectOptionsOptions ..
ObjectPutACLOptions ...
ObjectPutHeaderOptions ...
ObjectPutOptions ...
ObjectUploadPartOptions ...
Owner ...
Response API 响应.
ServiceGetResult ...

# Interfaces

ResponseParser 定义了一个用于解析响应的接口(反序列化 body 或错误检查)。 可以用于替换默认的解析响应的实现, 从而实现使用自定义的解析方法或写单元测试时 mock 接口结果的需求 实现自定义的 ResponseParser 时可以参考 DefaultResponseParser 的实现。.
Sender 定义了一个用来发送 http 请求的接口。 可以用于替换默认的基于 http.Client 的实现, 从而实现使用第三方 http client 或写单元测试时 mock 接口结果的需求。 实现自定义的 Sender 时可以参考 DefaultSender 的实现。.

# Type aliases

BucketGetACLResult ..
BucketPutOptions ...
BucketService ..
Initiator ...
MethodName 用于 Caller 中表示调用的是哪个方法.
ObjectGetACLResult ...
ObjectService ..
ServiceService ..