{"id":15558711,"url":"https://github.com/mozillazg/go-cos","last_synced_at":"2025-10-25T18:13:46.110Z","repository":{"id":52420015,"uuid":"95297324","full_name":"mozillazg/go-cos","owner":"mozillazg","description":"腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK（XML API）","archived":false,"fork":false,"pushed_at":"2021-04-29T19:33:56.000Z","size":275,"stargazers_count":88,"open_issues_count":5,"forks_count":26,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-05T20:37:41.348Z","etag":null,"topics":["cos","cos-sdk","go","golang","qcloud","qcloud-sdk","sdk"],"latest_commit_sha":null,"homepage":"https://godoc.org/github.com/mozillazg/go-cos","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozillazg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-24T12:51:50.000Z","updated_at":"2023-07-07T08:05:14.000Z","dependencies_parsed_at":"2022-08-17T21:50:25.668Z","dependency_job_id":null,"html_url":"https://github.com/mozillazg/go-cos","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/mozillazg/go-cos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozillazg%2Fgo-cos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozillazg%2Fgo-cos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozillazg%2Fgo-cos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozillazg%2Fgo-cos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozillazg","download_url":"https://codeload.github.com/mozillazg/go-cos/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozillazg%2Fgo-cos/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261990351,"owners_count":23241188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cos","cos-sdk","go","golang","qcloud","qcloud-sdk","sdk"],"created_at":"2024-10-02T15:40:31.209Z","updated_at":"2025-10-25T18:13:41.073Z","avatar_url":"https://github.com/mozillazg.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-cos\n\n腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK（API 版本：V5 版本的 XML API）。\n\n[![Build Status](https://img.shields.io/travis/mozillazg/go-cos/master.svg)](https://travis-ci.org/mozillazg/go-cos)\n[![Coverage Status](https://img.shields.io/codecov/c/github/mozillazg/go-cos/master.svg)](https://codecov.io/gh/mozillazg/go-cos)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mozillazg/go-cos)](https://goreportcard.com/report/github.com/mozillazg/go-cos)\n[![GoDoc](https://godoc.org/github.com/mozillazg/go-cos?status.svg)](https://godoc.org/github.com/mozillazg/go-cos)\n\n## Install\n\n`go get -u github.com/mozillazg/go-cos`\n\n推荐使用 [go mod](https://github.com/golang/go/wiki/Modules) 之类的技术指定使用的 go-cos 包版本号。\n\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\n\t\"github.com/mozillazg/go-cos\"\n)\n\nfunc main() {\n\tb, _ := cos.NewBaseURL(\"https://\u003cbucket\u003e-\u003cappid\u003e.cos.\u003cregion\u003e.myqcloud.com\")\n\tc := cos.NewClient(b, \u0026http.Client{\n\t\tTransport: \u0026cos.AuthorizationTransport{\n\t\t\tSecretID:  os.Getenv(\"COS_SECRETID\"),\n\t\t\tSecretKey: os.Getenv(\"COS_SECRETKEY\"),\n\t\t},\n\t})\n\n\tname := \"test/hello.txt\"\n\tresp, err := c.Object.Get(context.Background(), name, nil)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\tbs, _ := ioutil.ReadAll(resp.Body)\n\tfmt.Printf(\"%s\\n\", string(bs))\n}\n```\n\n备注：\n\n* SDK 不会自动设置超时时间，用户根据需要设置合适的超时时间（比如，设置 `http.Client` 的 `Timeout` 字段或者\n  `Transport` 字段之类的）或在需要时实现所需的超时机制（比如，通过 `context` 包实现）。\n* 所有的 API 在 [_example](./_example/) 目录下都有对应的使用示例（示例程序中用到的 `debug` 包只是调试用的不是必需的依赖）。\n\n## TODO\n\nService API:\n\n* [x] Get Service（使用示例：[service/get.go](./_example/service/get.go)）\n\nBucket API:\n\n* [x] **Get Bucket**（搜索文件，使用示例：[bucket/get.go](./_example/bucket/get.go)）\n* [x] Get Bucket ACL（使用示例：[bucket/getACL.go](./_example/bucket/getACL.go)）\n* [x] Get Bucket CORS（使用示例：[bucket/getCORS.go](./_example/bucket/getCORS.go)）\n* [x] Get Bucket Location（使用示例：[bucket/getLocation.go](./_example/bucket/getLocation.go)）\n* [x] Get Buket Lifecycle（使用示例：[bucket/getLifecycle.go](./_example/bucket/getLifecycle.go)）\n* [x] Get Bucket Tagging（使用示例：[bucket/getTagging.go](./_example/bucket/getTagging.go)）\n* [ ] Get Bucket policy\n* [x] Put Bucket（创建 bucket，使用示例：[bucket/put.go](./_example/bucket/put.go)）\n* [x] Put Bucket ACL（使用示例：[bucket/putACL.go](./_example/bucket/putACL.go)）\n* [x] Put Bucket CORS（使用示例：[bucket/putCORS.go](./_example/bucket/putCORS.go)）\n* [x] Put Bucket Lifecycle（使用示例：[bucket/putLifecycle.go](./_example/bucket/putLifecycle.go)）\n* [x] Put Bucket Tagging（使用示例：[bucket/putTagging.go](./_example/bucket/putTagging.go)）\n* [ ] Put Bucket policy\n* [x] Delete Bucket（删除 bucket，使用示例：[bucket/delete.go](./_example/bucket/delete.go)）\n* [x] Delete Bucket CORS（使用示例：[bucket/deleteCORS.go](./_example/bucket/deleteCORS.go)）\n* [x] Delete Bucket Lifecycle（使用示例：[bucket/deleteLifecycle.go](./_example/bucket/deleteLifecycle.go)）\n* [x] Delete Bucket Tagging（使用示例：[bucket/deleteTagging.go](./_example/bucket/deleteTagging.go)）\n* [ ] Delete Bucket policy\n* [x] Head Bucket（使用示例：[bucket/head.go](./_example/bucket/head.go)）\n* [x] List Multipart Uploads（查询上传的分块，使用示例：[bucket/listMultipartUploads.go](./_example/bucket/listMultipartUploads.go)）\n\nObject API:\n\n* [x] **Append Object**（增量更新文件，使用示例：[object/append.go](./_example/object/append.go)）\n* [x] **Get Object**（下载文件，使用示例：[object/get.go](./_example/object/get.go)）\n* [x] Get Object ACL（使用示例：[object/getACL.go](./_example/object/getACL.go)）\n* [x] **Put Object**（上传文件，使用示例：[object/put.go](./_example/object/put.go) or [object/uploadFile.go](./_example/object/uploadFile.go)）\n* [x] Put Object ACL（使用示例：[object/putACL.go](./_example/object/putACL.go)）\n* [x] Put Object Copy（使用示例：[object/copy.go](./_example/object/copy.go)）\n* [x] **Delete Object**（删除文件，使用示例：[object/delete.go](./_example/object/delete.go)）\n* [ ] [Post Object](https://cloud.tencent.com/document/product/436/14690)\n* [ ] [Post Object restore](https://cloud.tencent.com/document/product/436/12633)\n* [x] Delete Multiple Object（使用示例：[object/deleteMultiple.go](./_example/object/deleteMultiple.go)）\n* [x] Head Object（使用示例：[object/head.go](./_example/object/head.go)）\n* [x] Options Object（使用示例：[object/options.go](./_example/object/options.go)）\n* [x] **Initiate Multipart Upload**（初始化分块上传，使用示例：[object/initiateMultipartUpload.go](./_example/object/initiateMultipartUpload.go)）\n* [x] **Upload Part**（上传一个分块，使用示例：[object/uploadPart.go](./_example/object/uploadPart.go)）\n* [ ] [Upload Part - Copy](https://cloud.tencent.com/document/product/436/8287)\n* [x] **List Parts**（列出已上传的分块，使用示例：[object/listParts.go](./_example/object/listParts.go)）\n* [x] **Complete Multipart Upload**（合并上传的分块，使用示例：[object/completeMultipartUpload.go](./_example/object/completeMultipartUpload.go)）\n* [x] **Abort Multipart Upload**（取消分块上传，使用示例：[object/abortMultipartUpload.go](./_example/object/abortMultipartUpload.go)）\n\n其他功能：\n\n* [x] **生成预签名授权 URL**\n    * [x] 通过预签名授权 URL 下载文件，示例：[object/getWithPresignedURL.go](./_example/object/getWithPresignedURL.go)\n    * [x] 通过预签名授权 URL 上传文件，示例：[object/putWithPresignedURL.go](./_example/object/putWithPresignedURL.go)\n* [x] 支持临时密钥，示例: [object/sessionToken.go](./_example/object/sessionToken.go)\n* [x] 支持使用使用第三方 http client 包或单元测试时 mock 方法调用结果，示例：[object/mock.go](./_example/object/mock.go)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozillazg%2Fgo-cos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozillazg%2Fgo-cos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozillazg%2Fgo-cos/lists"}