point at a fork of aliyun-oss-go-sdk (#5358)

This commit is contained in:
Becca Petrin 2018-10-01 10:05:08 -07:00 committed by Brian Kassouf
parent 2d9b20bafd
commit 11abcec826
27 changed files with 467 additions and 14 deletions

View file

@ -11,12 +11,11 @@ import (
"strings"
"time"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
log "github.com/hashicorp/go-hclog"
"github.com/armon/go-metrics"
"github.com/hashicorp/errwrap"
log "github.com/hashicorp/go-hclog"
"github.com/hashicorp/vault/physical"
"github.com/tyrannosaurus-becks/aliyun-oss-go-sdk/oss"
)
// Verify AliCloudOSSBackend satisfies the correct interfaces

View file

@ -7,15 +7,15 @@ import (
"testing"
"time"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
log "github.com/hashicorp/go-hclog"
"github.com/hashicorp/vault/helper/logging"
"github.com/hashicorp/vault/physical"
"github.com/tyrannosaurus-becks/aliyun-oss-go-sdk/oss"
)
func TestAliCloudOSSBackend(t *testing.T) {
// ex. http://oss-us-east-1.aliyuncs.com
endpoint := os.Getenv("ALICLOUD_OSS_ENDPOINT")
accessKeyID := os.Getenv("ALICLOUD_ACCESS_KEY")
accessKeySecret := os.Getenv("ALICLOUD_SECRET_KEY")

View file

@ -0,0 +1,77 @@
# ChangeLog - Aliyun OSS SDK for Go
## 版本号1.9.0 日期2018-06-15
### 变更内容
- 变更:国际化
## 版本号1.8.0 日期2017-12-12
### 变更内容
- 变更空闲链接关闭时间调整为50秒
- 修复修复临时账号使用SignURL的问题
## 版本号1.7.0 日期2017-09-25
### 变更内容
- 增加DownloadFile支持CRC校验
- 增加STS测试用例
## 版本号1.6.0 日期2017-09-01
### 变更内容
- 修复URL中特殊字符的编码问题
- 变更不再支持Golang 1.4
## 版本号1.5.1 日期2017-08-04
### 变更内容
- 修复SignURL中Key编码的问题
- 修复DownloadFile下载完成后rename失败的问题
## 版本号1.5.0 日期2017-07-25
### 变更内容
- 增加支持生成URL签名
- 增加GetObject支持ResponseContentType等选项
- 修复DownloadFile去除分片小于5GB的限制
- 修复AppendObject在appendPosition不正确时发生panic
## 版本号1.4.0 日期2017-05-23
### 变更内容
- 增加支持符号链接symlink
- 增加支持RestoreObject
- 增加CreateBucket支持StorageClass
- 增加支持范围读NormalizedRange
- 修复IsObjectExist使用GetObjectMeta实现
## 版本号1.3.0 日期2017-01-13
### 变更内容
- 增加:上传下载支持进度条功能
## 版本号1.2.3 日期2016-12-28
### 变更内容
- 修复每次请求使用一个http.Client修改为共用http.Client
## 版本号1.2.2 日期2016-12-10
### 变更内容
- 修复GetObjectToFile/DownloadFile使用临时文件下载成功后重命名成下载文件
- 修复新建的下载文件权限修改为0664
## 版本号1.2.1 日期2016-11-11
### 变更内容
- 修复只有当OSS返回x-oss-hash-crc64ecma头部时才对上传的文件进行CRC64完整性校验
## 版本号1.2.0 日期2016-10-18
### 变更内容
- 增加支持CRC64校验
- 增加支持指定Useragent
- 修复计算MD5占用内存大的问题
- 修复CopyObject时Object名称没有URL编码的问题
## 版本号1.1.0 日期2016-08-09
### 变更内容
- 增加:支持代理服务器
## 版本号1.0.0 日期2016-06-24
### 变更内容
- 增加断点分片复制接口Bucket.CopyFile
- 增加Bucket间复制接口Bucket.CopyObjectTo、Bucket.CopyObjectFrom
- 增加Client.GetBucketInfo接口
- 增加Bucket.UploadPartCopy支持Bucket间复制
- 修复断点上传、断点下载出错后协程不退出的Bug
- 删除接口Bucket.CopyObjectToBucket

View file

@ -0,0 +1,167 @@
# Aliyun OSS SDK for Go
[![GitHub version](https://badge.fury.io/gh/aliyun%2Faliyun-oss-go-sdk.svg)](https://badge.fury.io/gh/aliyun%2Faliyun-oss-go-sdk)
[![Build Status](https://travis-ci.org/aliyun/aliyun-oss-go-sdk.svg?branch=master)](https://travis-ci.org/aliyun/aliyun-oss-go-sdk)
[![Coverage Status](https://coveralls.io/repos/github/aliyun/aliyun-oss-go-sdk/badge.svg?branch=master)](https://coveralls.io/github/aliyun/aliyun-oss-go-sdk?branch=master)
## [README of English](https://github.com/aliyun/aliyun-oss-go-sdk/blob/master/README.md)
## 关于
> - 此Go SDK基于[阿里云对象存储服务](http://www.aliyun.com/product/oss/)官方API构建。
> - 阿里云对象存储Object Storage Service简称OSS是阿里云对外提供的海量安全低成本高可靠的云存储服务。
> - OSS适合存放任意文件类型适合各种网站、开发企业及开发者使用。
> - 使用此SDK用户可以方便地在任何应用、任何时间、任何地点上传下载和管理数据。
## 版本
> - 当前版本1.9.0
## 运行环境
> - Go 1.5及以上。
## 安装方法
### GitHub安装
> - 执行命令`go get github.com/aliyun/aliyun-oss-go-sdk/oss`获取远程代码包。
> - 在您的代码中使用`import "github.com/aliyun/aliyun-oss-go-sdk/oss"`引入OSS Go SDK的包。
## 快速使用
#### 获取存储空间列表List Bucket
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
lsRes, err := client.ListBuckets()
if err != nil {
// HandleError(err)
}
for _, bucket := range lsRes.Buckets {
fmt.Println("Buckets:", bucket.Name)
}
```
#### 创建存储空间Create Bucket
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.CreateBucket("my-bucket")
if err != nil {
// HandleError(err)
}
```
#### 删除存储空间Delete Bucket
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.DeleteBucket("my-bucket")
if err != nil {
// HandleError(err)
}
```
#### 上传文件Put Object
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.PutObjectFromFile("my-object", "LocalFile")
if err != nil {
// HandleError(err)
}
```
#### 下载文件 (Get Object)
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.GetObjectToFile("my-object", "LocalFile")
if err != nil {
// HandleError(err)
}
```
#### 获取文件列表List Objects
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
lsRes, err := bucket.ListObjects()
if err != nil {
// HandleError(err)
}
for _, object := range lsRes.Objects {
fmt.Println("Objects:", object.Key)
}
```
#### 删除文件(Delete Object)
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.DeleteObject("my-object")
if err != nil {
// HandleError(err)
}
```
#### 其它
更多的示例程序请参看OSS Go SDK安装路径即GOPATH变量中的第一个路径下的`src\github.com\aliyun\aliyun-oss-go-sdk\sample`,该目录下为示例程序,
或者参看`https://github.com/aliyun/aliyun-oss-go-sdk`下sample目录中的示例文件。
## 注意事项
### 运行sample
> - 拷贝示例文件。到OSS Go SDK的安装路径即GOPATH变量中的第一个路径进入OSS Go SDK的代码目录`src\github.com\aliyun\aliyun-oss-go-sdk`
把其下的sample目录和sample.go复制到您的测试工程src目录下。
> - 修改sample/config.go里的endpoint、AccessKeyId、AccessKeySecret、BucketName等配置。
> - 请在您的工程目录下执行`go run src/sample.go`。
## 联系我们
> - [阿里云OSS官方网站](http://oss.aliyun.com)
> - [阿里云OSS官方论坛](http://bbs.aliyun.com)
> - [阿里云OSS官方文档中心](http://www.aliyun.com/product/oss#Docs)
> - 阿里云官方技术支持:[提交工单](https://workorder.console.aliyun.com/#/ticket/createIndex)
## 作者
> - Yubin Bai
## License
> - Apache License 2.0

View file

@ -0,0 +1,166 @@
# Alibaba Cloud OSS SDK for Go
[![GitHub Version](https://badge.fury.io/gh/aliyun%2Faliyun-oss-go-sdk.svg)](https://badge.fury.io/gh/aliyun%2Faliyun-oss-go-sdk)
[![Build Status](https://travis-ci.org/aliyun/aliyun-oss-go-sdk.svg?branch=master)](https://travis-ci.org/aliyun/aliyun-oss-go-sdk)
[![Coverage Status](https://coveralls.io/repos/github/aliyun/aliyun-oss-go-sdk/badge.svg?branch=master)](https://coveralls.io/github/aliyun/aliyun-oss-go-sdk?branch=master)
## [README of Chinese](https://github.com/aliyun/aliyun-oss-go-sdk/blob/master/README-CN.md)
## About
> - This Go SDK is based on the official APIs of [Alibaba Cloud OSS](http://www.aliyun.com/product/oss/).
> - Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring massive capacity, security, a low cost, and high reliability.
> - The OSS can store any type of files and therefore applies to various websites, development enterprises and developers.
> - With this SDK, you can upload, download and manage data on any app anytime and anywhere conveniently.
## Version
> - Current version: 1.9.0.
## Running Environment
> - Go 1.5 or above.
## Installing
### Install the SDK through GitHub
> - Run the 'go get github.com/aliyun/aliyun-oss-go-sdk/oss' command to get the remote code package.
> - Use 'import "github.com/aliyun/aliyun-oss-go-sdk/oss"' in your code to introduce OSS Go SDK package.
## Getting Started
### List Bucket
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
lsRes, err := client.ListBuckets()
if err != nil {
// HandleError(err)
}
for _, bucket := range lsRes.Buckets {
fmt.Println("Buckets:", bucket.Name)
}
```
### Create Bucket
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.CreateBucket("my-bucket")
if err != nil {
// HandleError(err)
}
```
### Delete Bucket
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.DeleteBucket("my-bucket")
if err != nil {
// HandleError(err)
}
```
### Put Object
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.PutObjectFromFile("my-object", "LocalFile")
if err != nil {
// HandleError(err)
}
```
### Get Object
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.GetObjectToFile("my-object", "LocalFile")
if err != nil {
// HandleError(err)
}
```
### List Objects
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
lsRes, err := bucket.ListObjects()
if err != nil {
// HandleError(err)
}
for _, object := range lsRes.Objects {
fmt.Println("Objects:", object.Key)
}
```
### Delete Object
```go
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.DeleteObject("my-object")
if err != nil {
// HandleError(err)
}
```
## Complete Example
More example projects can be found at 'src\github.com\aliyun\aliyun-oss-go-sdk\sample' under the installation path of the OSS Go SDK (the first path of the GOPATH variable). The directory contains example projects.
Or you can refer to the example objects in the sample directory under 'https://github.com/aliyun/aliyun-oss-go-sdk'.
### Running Example
> - Copy the example file. Go to the installation path of OSS Go SDK (the first path of the GOPATH variable), enter the code directory of the OSS Go SDK, namely 'src\github.com\aliyun\aliyun-oss-go-sdk',
and copy the sample directory and sample.go to the src directory of your test project.
> - Modify the endpoint, AccessKeyId, AccessKeySecret and BucketName configuration settings in sample/config.go.
> - Run 'go run src/sample.go' under your project directory.
## Contacting us
> - [Alibaba Cloud OSS official website](http://oss.aliyun.com).
> - [Alibaba Cloud OSS official forum](http://bbs.aliyun.com).
> - [Alibaba Cloud OSS official documentation center](http://www.aliyun.com/product/oss#Docs).
> - Alibaba Cloud official technical support: [Submit a ticket](https://workorder.console.aliyun.com/#/ticket/createIndex).
## Author
> - Yubin Bai.
## License
> - Apache License 2.0.

View file

@ -44,7 +44,7 @@ func getDefaultOssConfig() *Config {
config.AccessKeySecret = ""
config.RetryTimes = 5
config.IsDebug = false
config.UserAgent = userAgent
config.UserAgent = userAgent()
config.Timeout = 60 // Seconds
config.SecurityToken = ""
config.IsCname = false

View file

@ -16,11 +16,11 @@ import (
// userAgent gets user agent
// It has the SDK version information, OS information and GO version
var userAgent = func() string {
func userAgent() string {
sys := getSysInfo()
return fmt.Sprintf("aliyun-sdk-go/%s (%s/%s/%s;%s)", Version, sys.name,
sys.release, sys.machine, runtime.Version())
}()
}
type sysInfo struct {
name string // OS name such as windows/Linux

View file

@ -0,0 +1,36 @@
// main of samples
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/sample"
)
func main() {
sample.CreateBucketSample()
sample.NewBucketSample()
sample.ListBucketsSample()
sample.BucketACLSample()
sample.BucketLifecycleSample()
sample.BucketRefererSample()
sample.BucketLoggingSample()
sample.BucketCORSSample()
sample.ObjectACLSample()
sample.ObjectMetaSample()
sample.ListObjectsSample()
sample.DeleteObjectSample()
sample.AppendObjectSample()
sample.CopyObjectSample()
sample.PutObjectSample()
sample.GetObjectSample()
sample.CnameSample()
sample.SignURLSample()
sample.ArchiveSample()
fmt.Println("All samples completed")
}

20
vendor/vendor.json vendored
View file

@ -301,12 +301,6 @@
"revision": "ef9535c490beb6b59620d93f6c7ba88e9b3b1ad0",
"revisionTime": "2018-08-22T15:14:34Z"
},
{
"checksumSHA1": "GhlHTW5NOefmf1THrTLlEnrhOQA=",
"path": "github.com/aliyun/aliyun-oss-go-sdk/oss",
"revision": "36bf7aa2f916f274137aedd05d1d36f6a3c0f4a6",
"revisionTime": "2018-06-15T12:55:16Z"
},
{
"checksumSHA1": "DUX4pOK9NKSAzC6RRXniLviyByA=",
"path": "github.com/armon/go-metrics",
@ -2147,6 +2141,20 @@
"revision": "b75d8614f926c077e48d85f1f8f7885b758c6225",
"revisionTime": "2015-04-27T01:28:21Z"
},
{
"checksumSHA1": "XcN5ljoQ7CTwkOW5NN9tT5ZPpPQ=",
"path": "github.com/tyrannosaurus-becks/aliyun-oss-go-sdk",
"revision": "fd883d86a1c750b7fbed812eec939f0292693160",
"revisionTime": "2018-09-13T16:03:13Z",
"version": "only-get-system-info-if-needed",
"versionExact": "only-get-system-info-if-needed"
},
{
"checksumSHA1": "6spheQ9+SUHtR6+2NIh71Q3bj+E=",
"path": "github.com/tyrannosaurus-becks/aliyun-oss-go-sdk/oss",
"revision": "fd883d86a1c750b7fbed812eec939f0292693160",
"revisionTime": "2018-09-13T16:03:13Z"
},
{
"checksumSHA1": "d3YqGxTQPV3bo+sXijGmbpjf+WA=",
"path": "github.com/ugorji/go/codec",