sdk

package module
v1.0.14 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2021 License: Apache-2.0 Imports: 0 Imported by: 0

README

KS3 Go SDK 使用指南

目录

1、概述

此 SDK 是基于 aws-sdk-go 改造,适用于 golang 1.8 开发环境。

2、环境准备

配置 Go 开发环境

3、初始化

3.1 下载安装 SDK

  • 安装方式:
go get github.com/ks3sdklib/aws-sdk-go


3.2 获取密钥

  1. 开通 KS3 服务, 注册账号

  2. 进入控制台,获取 AccessKeyID 、AccessKeySecret

3.3 初始化

  1. 引用相关包
     import(

     "github.com/ks3sdklib/aws-sdk-go/aws"

     "github.com/ks3sdklib/aws-sdk-go/aws/credentials"

     "github.com/ks3sdklib/aws-sdk-go/service/s3"

     )



  1. 初始化客户端
     credentials := credentials.NewStaticCredentials("<AccessKeyID>","<AccessKeySecret>","")

     client := s3.New(&aws.Config{

     Region: "BEIJING",

     Credentials: credentials,

     Endpoint:"ks3-cn-beijingcs.ksyun.com",//ks3地址

     DisableSSL:true,//是否禁用https

     LogLevel:1,//是否开启日志,0为关闭日志,1为开启日志

     S3ForcePathStyle:false,//是否强制使用path style方式访问,默认不使用,true开启

     LogHTTPBody:true,//是否把HTTP请求body打入日志

     Logger:os.Stdout,//打日志的位置

     })


注意:

3.4 常见术语介绍

Object(对象,文件)

在 KS3 中,用户操作的基本数据单元是 Object。单个 Object 允许存储 0~48.8TB 的数据。 Object 包含 key 和 data。其中,key 是 Object 的名字;data 是 Object 的数据。key 为 UTF-8 编码,且编码后的长度不得超过 1024 个字符。

Key(文件名)

即 Object 的名字,key 为 UTF-8 编码,且编码后的长度不得超过 1024 个字符。Key 中可以带有斜杠,当 Key 中带有斜杠的时候,将会自动在控制台里组织成目录结构。

其他术语请参考概念与术语

4、空间相关

4.1 创建 bucket

func CreateBucket(svc *s3.S3) {
	resp, err := svc.CreateBucket(&s3.CreateBucketInput{
		ACL:    aws.String("public-read"),//权限
		Bucket: aws.String("bucket"),
        ProjectId: aws.String("123123"),//项目制id
	})
	if err != nil {
		if awsErr, ok := err.(awserr.Error); ok {
			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
			if reqErr, ok := err.(awserr.RequestFailure); ok {
				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
			}
		} else {
			fmt.Println(err.Error())
		}
	}
	fmt.Println("结果:\n", awsutil.StringValue(resp))
}

4.2 设置镜像回源规则

func PutBucketMirrorRules() {

	params := &s3.PutBucketMirrorInput{
		Bucket: aws.String(BucketName), // 桶名,必填字段
		BucketMirror: &s3.BucketMirror{
			Version:          aws.String("V3"),//回源规则版本
			UseDefaultRobots: aws.Boolean(false),//是否使用默认的robots.txt
            //异步回源规则,设置源站url、ACL权限
			AsyncMirrorRule: &s3.AsyncMirrorRule{
				MirrorUrls: []*string{
					aws.String("http://abc.om"),
					aws.String("http://wps.om"),
				},
				//SavingSetting: &s3.SavingSetting{
				//	ACL: "private",
				//},
			},
            //同步回源规则,设置触发条件(http_codes和文件前缀)、源站url、query string是否透传、是否follow 302/301、header配置、ACL权限
			SyncMirrorRules: []*s3.SyncMirrorRules{
				{
					MatchCondition: s3.MatchCondition{
						HTTPCodes: []*string{
							aws.String("404"),
						},
						KeyPrefixes: []*string{
							aws.String("abc"),
						},
					},
					MirrorURL: aws.String("http://v-ks-a-i.originalvod.com"),
					MirrorRequestSetting: &s3.MirrorRequestSetting{
						PassQueryString: aws.Boolean(true),
						Follow3Xx:       aws.Boolean(true),
						HeaderSetting: &s3.HeaderSetting{
							SetHeaders: []*s3.SetHeaders{
								{
									aws.String("a"),
									aws.String("b"),
								},
							},
							RemoveHeaders: []*s3.RemoveHeaders{
								{
									aws.String("daaaaa"),
								},
							},
							PassAll: aws.Boolean(true),
							//PassHeaders: []*s3.PassHeaders{
							//	{
							//		aws.String("asdb"),
							//	},
							//},
						},
					},
					SavingSetting: &s3.SavingSetting{
						ACL: aws.String("private"),
					},
				},
			},
		},
	}
	resp, err := client.PutBucketMirror(params)
	if err != nil {
		if awsErr, ok := err.(awserr.Error); ok {
			// Generic AWS Error with Code, Message, and original error (if any)
			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
			if reqErr, ok := err.(awserr.RequestFailure); ok {
				// A service error occurred
				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
			}
		} else {
			// This case should never be hit, The SDK should alwsy return an
			// error which satisfies the awserr.Error interface.
			fmt.Println(err.Error())
		}
	}

	fmt.Println("resp.code is:", resp.HttpCode)
	fmt.Println("resp.Header is:", resp.Header)
	// Pretty-print the response data.
	var bodyStr = string(resp.Body[:])
	fmt.Println("resp.Body is:", bodyStr)

}	


4.3 获取镜像回源规则

	//获取镜像回源规则
func GetBucketMirrorRules() {

	params := &s3.GetBucketMirrorInput{
		Bucket: aws.String(BucketName),
	}
	resp, _ := client.GetBucketMirror(params)
	fmt.Println("resp.code is:", resp.HttpCode)
	fmt.Println("resp.Header is:", resp.Header)
	// Pretty-print the response data.
	var bodyStr = string(resp.Body[:])
	fmt.Println("resp.Body is:", bodyStr)

}	


4.4 删除镜像回源规则

	//删除镜像回源规则
    func DeleteBucketMirrorRules() {

	params := &s3.DeleteBucketMirrorInput{
		Bucket: aws.String(BucketName),
	}
	resp, _ := client.DeleteBucketMirror(params)
	fmt.Println("resp.code is:", resp.HttpCode)
	fmt.Println("resp.Header is:", resp.Header)
	// Pretty-print the response data.
	var bodyStr = string(resp.Body[:])
	fmt.Println("resp.Body is:", bodyStr)

}	

5、对象相关

5.1 获取元数据

func headObj(svc *s3.S3) {
input := s3.HeadObjectInput{
	Bucket: aws.String(bucketname),
	Key:    aws.String(key),
}
resp, err := client.HeadObject(&input)

if err != nil {
	if awsErr, ok := err.(awserr.Error); ok {
		fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
		if reqErr, ok := err.(awserr.RequestFailure); ok {
			fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
		}
	} else {
		fmt.Println(err.Error())
	}
}
fmt.Println("结果:\n", awsutil.StringValue(resp))

}

5.2 上传文件

func putFile(filename string) {

	if len(filename) == 0 {
		filename = "/Users/user/Downloads/aaa.docx"
	}
	file, err := ioutil.ReadFile(filename)
	if err != nil {
		fmt.Println("Failed to open file", err)
		os.Exit(1)
	}
	params := &s3.PutObjectInput{
		Bucket:      aws.String(BucketName),                // bucket名称
		Key:         aws.String("go-demo/test"),            // object key
		ACL:         aws.String("public-read"),             //权限,支持private(私有),public-read(公开读)
		Body:        bytes.NewReader(file),                 //要上传的内容
		ContentType: aws.String("application/octet-stream"), //设置content-type
		Metadata: map[string]*string{
			//"Key": aws.String("MetadataValue"), // 设置用户元数据
			// More values...
		},
	}
	resp, err := client.PutObject(params)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp)
	//获取新的文件名
	fmt.Println(*resp)
}



5.3 下载文件

 params := &s3.GetObjectInput{

 Bucket: aws.String("BucketName"), // bucket名称

 Key: aws.String("ObjectKey"), // object key

 }

 resp, err := client.GetObject(params)

 if err != nil{

 panic(err)

 }

 //读取返回结果中body的前20个字节

 b := make([]byte, 20)

 n, err := resp.Body.Read(b)

 fmt.Printf("%-20s %-2v %v\n", b[:n], n, err)


5.4 生成文件下载外链

 params := &s3.GetObjectInput{

 Bucket: aws.String("BucketName"), // bucket名称

 Key: aws.String("ObjectKey"), // object key

 ResponseCacheControl: aws.String("ResponseCacheControl"),

//控制返回的Cache-Control header

 ResponseContentDisposition: aws.String("ResponseContentDisposition"),

//控制返回的Content-Disposition header

 ResponseContentEncoding: aws.String("ResponseContentEncoding"),

//控制返回的Content-Encoding header

 ResponseContentLanguage: aws.String("ResponseContentLanguage"),

//控制返回的Content-Language header

 ResponseContentType: aws.String("ResponseContentType"),

//控制返回的Content-Type header

 }

 resp, err := client.GetObjectPresignedUrl(params,1444370289000000000)

//第二个参数为外链过期时间,为纳秒级的时间戳

 if err!=nil {

 panic(err)

 }

 fmt.Println(resp)//resp即生成的外链地址,类型为url.URL


5.5 生成文件上传外链

 params := &s3.PutObjectInput{

 Bucket: aws.String(bucket), // bucket名称

 Key: aws.String(key), // object key

 ACL: aws.String("public-read"),//设置ACL

 ContentType: aws.String("application/octet-stream"),//设置文件的content-type

 ContentMaxLength: aws.Long(20),//设置允许的最大长度,对应的header:x-amz-content-maxlength

 }

 resp, err := client.PutObjectPresignedUrl(params,1444370289000000000)

//第二个参数为外链过期时间,为纳秒级的时间戳

 if err!=nil {

 panic(err)

 }

 httpReq, _ := http.NewRequest("PUT", "", strings.NewReader("123"))

 httpReq.URL = resp

 httpReq.Header["x-amz-acl"] = []string{"public-read"}

 httpReq.Header["x-amz-content-maxlength"] = []string{"20"}

 httpReq.Header.Add("Content-Type","application/octet-stream")

 fmt.Println(httpReq)

 httpRep,err := http.DefaultClient.Do(httpReq)

 fmt.Println(httpRep)

 if err != nil{

 panic(err)

 }


5.6 生成设置文件 ACL 的外链

 params := &s3.PutObjectACLInput{

 Bucket: aws.String(bucket), // bucket名称

 Key: aws.String(key), // object key

 ACL: aws.String("private"),//设置ACL

 ContentType: aws.String("text/plain"),

 }

 resp, err := client.PutObjectACLPresignedUrl(params,1444370289000000000)

//第二个参数为外链过期时间,为纳秒级的时间戳

 if err!=nil {

 panic(err)

 }

 fmt.Println(resp)//resp即生成的外链地址,类型为url.URL

 httpReq, _ := http.NewRequest("PUT", "", nil)

 httpReq.URL = resp

 httpReq.Header["x-amz-acl"] = []string{"private"}

 httpReq.Header.Add("Content-Type","text/plain")

 fmt.Println(httpReq)

 httpRep,err := http.DefaultClient.Do(httpReq)

 if err != nil{

 panic(err)

 }

 fmt.Println(httpRep)


5.7 修改元数据

func TestModifyObjectMeta(t *testing.T) {
	key_modify_meta := string("yourkey")

	metadata := make(map[string]*string)
	metadata["yourmetakey1"] = aws.String("yourmetavalue1")
	metadata["yourmetakey2"] = aws.String("yourmetavalue2")

	_,err := svc.CopyObject(&s3.CopyObjectInput{
		Bucket:aws.String(bucket),
		Key:aws.String(key_modify_meta),
		CopySource:aws.String("/" + bucket+"/" + key_modify_meta),
		MetadataDirective:aws.String("REPLACE"),
		Metadata:metadata,
	})
	assert.NoError(t,err)
	assert.True(t,objectExists(bucket,key))
}


5.8 批量删除对象

	func DeleteObjects() {

	params := &s3.DeleteObjectsInput{
		Bucket: aws.String(""), // 桶名称
		Delete: &s3.Delete{     // Delete Required
			Objects: []*s3.ObjectIdentifier{
				{
					Key:       aws.String("1"), // 目标对象1的key
				},
				{
					Key:       aws.String("2"), // 目标对象2的key
				},
				// More values...
			},
		},
	}
	resp := svc.DeleteObjects(params)    //执行并返回响应结果
	fmt.Println("error keys:",resp.Errors)
	fmt.Println("deleted keys:",resp.Deleted)
    }


5.9 目录删除

	func DeleteBucketPrefix(prefix string) {

	params := &s3.DeleteBucketPrefixInput{
		Bucket: aws.String(""),  //桶名称
		Prefix: aws.String(prefix),    //前缀(目录)名称
	}
	resp, _ := svc.DeleteBucketPrefix(params)    //执行并接受响应结果
	fmt.Println("error keys:",resp.Errors)
	fmt.Println("deleted keys:",resp.Deleted)
    }


5.10 列举文件

	/**
	列举文件
	*/
	func ListObjects() {

		resp, err := client.ListObjects(&s3.ListObjectsInput{
			Bucket: aws.String(BucketName),
			Prefix: aws.String("onlineTask/"), //文件前缀
			//	Marker:  aws.String("Marker"), //从按个key开始获取
			MaxKeys: aws.Long(1000), //最大数量
		})
		if err != nil {
			fmt.Println(resp)
		}
		fmt.Println(len(resp.Contents))
	}
		

5.11 抓取远程数据到KS3

 func  FetchObcjet() {
    	sourceUrl := "https://img0.pconline.com.cn/pconline/1111/04/2483449_20061139501.jpg"
    	input := s3.FetchObjectInput{
    		Bucket:      aws.String(bucketname),
    		Key:         aws.String("dst/testa"),
    		SourceUrl:   aws.String(sourceUrl),
    		ACL:         aws.String("public-read"),
    	}
    	resp, err := svc.FetchObject(&input)
    	if err != nil {
    		if awsErr, ok := err.(awserr.Error); ok {
    			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
    			if reqErr, ok := err.(awserr.RequestFailure); ok {
    				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
    			}
    		} else {
    			fmt.Println(err.Error())
    		}
    	}
    	fmt.Println("结果:\n", awsutil.StringValue(resp))
    }   
}	

5.12 复制对象

 func  CopyObject() {
 
        	input := s3.CopyObjectInput{
        		Bucket:               aws.String(bucketname),
        		Key:                  aws.String(key),
        		CopySource:           aws.String("/cqc-test-b/yztestfile1"),
        	}
        	resp, err := svc.CopyObject(&input)
        	if err != nil {
        		if awsErr, ok := err.(awserr.Error); ok {
        			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
        			if reqErr, ok := err.(awserr.RequestFailure); ok {
        				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
        			}
        		} else {
        			fmt.Println(err.Error())
        		}
        	}
        
        	fmt.Println("结果:\n", awsutil.StringValue(resp))
    } 

5.13 对象标签

5.13.1 设置对象标签

func PutObjectTag() {

	tagkey := "name"
	tagval := "yz"
	tagkey2 := "sex"
	tagval2 := "female"
	objTagging := s3.Tagging{
		TagSet: []*s3.Tag{&s3.Tag{
			Key:   aws.String(tagkey),
			Value: aws.String(tagval),
		}, &s3.Tag{
			Key:   aws.String(tagkey2),
			Value: aws.String(tagval2),
		},
		},
	}

	params := &s3.PutObjectTaggingInput{
		Bucket:  aws.String(bucketname), // Required
		Key:     aws.String(key),
		Tagging: &objTagging,
	}
	resp, err := client.PutObjectTagging(params)

	if err != nil {
		if awsErr, ok := err.(awserr.Error); ok {
			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
			if reqErr, ok := err.(awserr.RequestFailure); ok {
				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
			}
		} else {
			fmt.Println(err.Error())
		}
	}

	fmt.Println("结果:\n", awsutil.StringValue(resp))
}
		

5.18.2 获取对象标签

	/**
	获取对象标签
	*/
	func GetObjectTag(svc *s3.S3) {

	params := &s3.GetObjectTaggingInput{
		Bucket: aws.String(bucketname), // Required
		Key:    aws.String(key),
	}
	resp, err := client.GetObjectTagging(params)

	if err != nil {
		if awsErr, ok := err.(awserr.Error); ok {
			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
			if reqErr, ok := err.(awserr.RequestFailure); ok {
				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
			}
		} else {
			fmt.Println(err.Error())
		}
	}

	fmt.Println("结果:\n", awsutil.StringValue(resp))
}
		


5.18.3 删除对象标签

	func DeleteObjectTag() {

	params := &s3.DeleteObjectTaggingInput{
		Bucket: aws.String(bucketname), // Required
		Key:    aws.String(key),
	}
	resp, err := client.DeleteObjectTagging(params)

	if err != nil {
		if awsErr, ok := err.(awserr.Error); ok {
			fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
			if reqErr, ok := err.(awserr.RequestFailure); ok {
				fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
			}
		} else {
			fmt.Println(err.Error())
		}
	}

	fmt.Println("结果:\n", awsutil.StringValue(resp))
}
		

6.1 初始化分块上传

params := &s3.CreateMultipartUploadInput{

Bucket: aws.String("BucketName"), // bucket名称

Key: aws.String("ObjectKey"), // object key

ACL: aws.String("ObjectCannedACL"),//权限,支持private(私有),public-read(公开读)

ContentType: aws.String("application/octet-stream"),//设置content-type

Metadata: map[string]*string{

//"Key": aws.String("MetadataValue"), // 设置用户元数据

// More values...

},

}

resp, err := client.CreateMultipartUpload(params)

if err != nil{

panic(err)

}

//获取这次初始化的uploadid

fmt.Println(*resp.UploadID)

6.2 分块上传 - 上传块

 params := &s3.UploadPartInput{

 Bucket:aws.String(bucket),//bucket名称

 Key:aws.String(key),//文件名

 PartNumber:aws.Long(1),//当前块的序号

 UploadID:aws.String(uploadId),//由初始化获取到得uploadid

 Body:strings.NewReader(content),//当前块的内容

 ContentLength:aws.Long(int64(len(content))),//内容长度

 }

 resp,err := client.UploadPart(params)

 if err != nil{

 panic(err)

 }

 fmt.Println(resp)

6.3 完成分块上传并合并块

 params := &s3.CompleteMultipartUploadInput{

 Bucket:aws.String(bucket),//bucket名称

 Key:aws.String(key),//文件名

 UploadID:aws.String(uploadId),//由初始化获取到得uploadid

 MultipartUpload:&s3.CompletedMultipartUpload{

 Parts:<已经完成的块列表>,//类型为*s3.CompletedPart数组

 },

 }

 resp,err := client.CompleteMultipartUpload(params)

 if err != nil{

 panic(err)

 }

 fmt.Println(resp)


6.4 取消分块上传

 params := &s3.AbortMultipartUploadInput{

 Bucket:aws.String(bucket),//bucket名称

 Key:aws.String(key),//文件名

 UploadID:aws.String(uploadId),//由初始化获取到得uploadid

 }

 resp,err := client.AbortMultipartUpload(params)

 if err != nil{

 panic(err)

 }

 fmt.Println(resp)

6.5 罗列分块上传已经上传的块

 params := &s3.ListPartsInput{

 Bucket:aws.String(bucket),//bucket名称

 Key:aws.String(key),//文件名

 UploadID:aws.String(uploadId),//由初始化获取到得uploadid

 }

 resp,err := client.ListParts(params)

 if err != nil{

 panic(err)

 }

 fmt.Println(resp)

5.7 计算 token(移动端相关)

 package main

 import(

 "crypto/hmac"

 "crypto/sha1"

 "encoding/base64"

 "fmt"

 )

 func main(){

 AccessKeyId := "AccessKeyId"

 AccessKeySecret:= "AccessKeySecret"

 stringToSign := "stringToSign"

 signature := string(base64Encode(makeHmac([]byte(AccessKeySecret), []byte(stringToSign))))

 token := "KSS "+AccessKeyId+":"+signature

 fmt.Println(token)

 }

 func makeHmac(key []byte, data []byte) []byte {

 hash := hmac.New(sha1.New, key)

 hash.Write(data)

 return hash.Sum(nil)

 }

 func base64Encode(src []byte) []byte {

 return []byte(base64.StdEncoding.EncodeToString(src))

 }


Documentation

Overview

Package sdk is the official AWS SDK for the Go programming language.

See our Developer Guide for information for on getting started and using the SDK.

https://github.com/ks3sdklib/aws-sdk-go/wiki

Directories

Path Synopsis
aws
Package aws provides core functionality for making requests to AWS services.
Package aws provides core functionality for making requests to AWS services.
awserr
Package awserr represents API error interface accessors for the SDK.
Package awserr represents API error interface accessors for the SDK.
credentials
Package credentials provides credential retrieval and management The Credentials is the primary method of getting access to and managing credentials Values.
Package credentials provides credential retrieval and management The Credentials is the primary method of getting access to and managing credentials Values.
internal
apierr
Package apierr represents API error types.
Package apierr represents API error types.
endpoints
Package endpoints validates regional endpoints for services.
Package endpoints validates regional endpoints for services.
features/autoscaling
Package autoscaling provides gucumber integration tests suppport.
Package autoscaling provides gucumber integration tests suppport.
features/cloudformation
Package cloudformation provides gucumber integration tests suppport.
Package cloudformation provides gucumber integration tests suppport.
features/cloudfront
Package cloudfront provides gucumber integration tests suppport.
Package cloudfront provides gucumber integration tests suppport.
features/cloudhsm
Package cloudhsm provides gucumber integration tests suppport.
Package cloudhsm provides gucumber integration tests suppport.
features/cloudsearch
Package cloudsearch provides gucumber integration tests suppport.
Package cloudsearch provides gucumber integration tests suppport.
features/cloudtrail
Package cloudtrail provides gucumber integration tests suppport.
Package cloudtrail provides gucumber integration tests suppport.
features/cloudwatch
Package cloudwatch provides gucumber integration tests suppport.
Package cloudwatch provides gucumber integration tests suppport.
features/cloudwatchlogs
Package cloudwatchlogs provides gucumber integration tests suppport.
Package cloudwatchlogs provides gucumber integration tests suppport.
features/codedeploy
Package codedeploy provides gucumber integration tests suppport.
Package codedeploy provides gucumber integration tests suppport.
features/cognitoidentity
Package cognitoidentity provides gucumber integration tests suppport.
Package cognitoidentity provides gucumber integration tests suppport.
features/cognitosync
Package cognitosync provides gucumber integration tests suppport.
Package cognitosync provides gucumber integration tests suppport.
features/configservice
Package configservice provides gucumber integration tests suppport.
Package configservice provides gucumber integration tests suppport.
features/datapipeline
Package datapipeline provides gucumber integration tests suppport.
Package datapipeline provides gucumber integration tests suppport.
features/directconnect
Package directconnect provides gucumber integration tests suppport.
Package directconnect provides gucumber integration tests suppport.
features/directoryservice
Package directoryservice provides gucumber integration tests suppport.
Package directoryservice provides gucumber integration tests suppport.
features/dynamodb
Package dynamodb provides gucumber integration tests suppport.
Package dynamodb provides gucumber integration tests suppport.
features/ec2
Package ec2 provides gucumber integration tests suppport.
Package ec2 provides gucumber integration tests suppport.
features/efs
Package efs provides gucumber integration tests suppport.
Package efs provides gucumber integration tests suppport.
features/elasticache
Package elasticache provides gucumber integration tests suppport.
Package elasticache provides gucumber integration tests suppport.
features/elasticbeanstalk
Package elasticbeanstalk provides gucumber integration tests suppport.
Package elasticbeanstalk provides gucumber integration tests suppport.
features/elastictranscoder
Package elastictranscoder provides gucumber integration tests suppport.
Package elastictranscoder provides gucumber integration tests suppport.
features/elb
Package elb provides gucumber integration tests suppport.
Package elb provides gucumber integration tests suppport.
features/emr
Package emr provides gucumber integration tests suppport.
Package emr provides gucumber integration tests suppport.
features/glacier
Package glacier provides gucumber integration tests suppport.
Package glacier provides gucumber integration tests suppport.
features/iam
Package iam provides gucumber integration tests suppport.
Package iam provides gucumber integration tests suppport.
features/kinesis
Package kinesis provides gucumber integration tests suppport.
Package kinesis provides gucumber integration tests suppport.
features/kms
Package kms provides gucumber integration tests suppport.
Package kms provides gucumber integration tests suppport.
features/lambda
Package lambda provides gucumber integration tests suppport.
Package lambda provides gucumber integration tests suppport.
features/machinelearning
Package machinelearning provides gucumber integration tests suppport.
Package machinelearning provides gucumber integration tests suppport.
features/opsworks
Package opsworks provides gucumber integration tests suppport.
Package opsworks provides gucumber integration tests suppport.
features/rds
Package rds provides gucumber integration tests suppport.
Package rds provides gucumber integration tests suppport.
features/redshift
Package redshift provides gucumber integration tests suppport.
Package redshift provides gucumber integration tests suppport.
features/route53
Package route53 provides gucumber integration tests suppport.
Package route53 provides gucumber integration tests suppport.
features/route53domains
Package route53domains provides gucumber integration tests suppport.
Package route53domains provides gucumber integration tests suppport.
features/ses
Package ses provides gucumber integration tests suppport.
Package ses provides gucumber integration tests suppport.
features/shared
Package shared contains shared step definitions that are used across integration tests
Package shared contains shared step definitions that are used across integration tests
features/sns
Package sns provides gucumber integration tests suppport.
Package sns provides gucumber integration tests suppport.
features/sqs
Package sqs provides gucumber integration tests suppport.
Package sqs provides gucumber integration tests suppport.
features/ssm
Package ssm provides gucumber integration tests suppport.
Package ssm provides gucumber integration tests suppport.
features/storagegateway
Package storagegateway provides gucumber integration tests suppport.
Package storagegateway provides gucumber integration tests suppport.
features/sts
Package sts provides gucumber integration tests suppport.
Package sts provides gucumber integration tests suppport.
features/swf
Package swf provides gucumber integration tests suppport.
Package swf provides gucumber integration tests suppport.
features/workspaces
Package workspaces provides gucumber integration tests suppport.
Package workspaces provides gucumber integration tests suppport.
fixtures/helpers
Package helpers provides parameter filtering utilities.
Package helpers provides parameter filtering utilities.
ini
Package ini is an LL(1) parser for configuration files.
Package ini is an LL(1) parser for configuration files.
model/api
Package api represents API abstractions for rendering service generated files.
Package api represents API abstractions for rendering service generated files.
model/cli/gen-api
Command aws-gen-gocli parses a JSON description of an AWS API and generates a Go file containing a client for the API.
Command aws-gen-gocli parses a JSON description of an AWS API and generates a Go file containing a client for the API.
model/cli/gen-endpoints
Command aws-gen-goendpoints parses a JSON description of the AWS endpoint discovery logic and generates a Go file which returns an endpoint.
Command aws-gen-goendpoints parses a JSON description of the AWS endpoint discovery logic and generates a Go file which returns an endpoint.
protocol/ec2query
Package ec2query provides serialisation of AWS EC2 requests and responses.
Package ec2query provides serialisation of AWS EC2 requests and responses.
protocol/json/jsonutil
Package jsonutil provides JSON serialisation of AWS requests and responses.
Package jsonutil provides JSON serialisation of AWS requests and responses.
protocol/jsonrpc
Package jsonrpc provides JSON RPC utilities for serialisation of AWS requests and responses.
Package jsonrpc provides JSON RPC utilities for serialisation of AWS requests and responses.
protocol/query
Package query provides serialisation of AWS query requests, and responses.
Package query provides serialisation of AWS query requests, and responses.
protocol/rest
Package rest provides RESTful serialisation of AWS requests and responses.
Package rest provides RESTful serialisation of AWS requests and responses.
protocol/restjson
Package restjson provides RESTful JSON serialisation of AWS requests and responses.
Package restjson provides RESTful JSON serialisation of AWS requests and responses.
protocol/restxml
Package restxml provides RESTful XML serialisation of AWS requests and responses.
Package restxml provides RESTful XML serialisation of AWS requests and responses.
protocol/xml/xmlutil
Package xmlutil provides XML serialisation of AWS requests and responses.
Package xmlutil provides XML serialisation of AWS requests and responses.
signer/v4
Package v4 implements signing for AWS V4 signer
Package v4 implements signing for AWS V4 signer
smithytesting/xml
Package xml is XML testing package that supports XML comparison utility.
Package xml is XML testing package that supports XML comparison utility.
sync/singleflight
Package singleflight provides a duplicate function call suppression mechanism.
Package singleflight provides a duplicate function call suppression mechanism.
test/integration
Package integration performs initialization and validation for integration tests.
Package integration performs initialization and validation for integration tests.
test/unit
Package unit performs initialization and validation for unit tests
Package unit performs initialization and validation for unit tests
util/utilassert
Package utilassert provides testing assertion generation functions.
Package utilassert provides testing assertion generation functions.
util/utilsort
Package utilsort provides sorting utility methods.
Package utilsort provides sorting utility methods.
Package service contains automatically generated AWS clients.
Package service contains automatically generated AWS clients.
s3
Package s3 provides a client for Amazon Simple Storage Service.
Package s3 provides a client for Amazon Simple Storage Service.
s3/s3crypto
Package s3crypto provides encryption to S3 using KMS and AES GCM.
Package s3crypto provides encryption to S3 using KMS and AES GCM.
s3/s3iface
Package s3iface provides an interface for the Amazon Simple Storage Service.
Package s3iface provides an interface for the Amazon Simple Storage Service.
s3/s3manager
Package s3manager provides utilities to upload and download objects from S3 concurrently.
Package s3manager provides utilities to upload and download objects from S3 concurrently.
s3/s3manager/s3manageriface
Package s3manageriface provides an interface for the s3manager package
Package s3manageriface provides an interface for the s3manager package
test

Jump to

Keyboard shortcuts

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