Chris Lu
5 years ago
1 changed files with 111 additions and 0 deletions
@ -0,0 +1,111 @@ |
|||
package basic |
|||
|
|||
import ( |
|||
"fmt" |
|||
"os" |
|||
"strings" |
|||
"testing" |
|||
|
|||
"github.com/aws/aws-sdk-go/aws" |
|||
"github.com/aws/aws-sdk-go/aws/awserr" |
|||
"github.com/aws/aws-sdk-go/aws/session" |
|||
"github.com/aws/aws-sdk-go/service/s3" |
|||
) |
|||
|
|||
var ( |
|||
svc *s3.S3 |
|||
) |
|||
|
|||
func init() { |
|||
// Initialize a session in us-west-2 that the SDK will use to load
|
|||
// credentials from the shared credentials file ~/.aws/credentials.
|
|||
sess, err := session.NewSession(&aws.Config{ |
|||
Region: aws.String("us-west-2"), |
|||
Endpoint: aws.String("localhost:8333"), |
|||
DisableSSL: aws.Bool(true), |
|||
}) |
|||
if err != nil { |
|||
exitErrorf("create session, %v", err) |
|||
} |
|||
|
|||
// Create S3 service client
|
|||
svc = s3.New(sess) |
|||
} |
|||
|
|||
func TestCreateBucket(t *testing.T) { |
|||
|
|||
input := &s3.CreateBucketInput{ |
|||
Bucket: aws.String("theBucket"), |
|||
} |
|||
|
|||
result, err := svc.CreateBucket(input) |
|||
if err != nil { |
|||
if aerr, ok := err.(awserr.Error); ok { |
|||
switch aerr.Code() { |
|||
case s3.ErrCodeBucketAlreadyExists: |
|||
fmt.Println(s3.ErrCodeBucketAlreadyExists, aerr.Error()) |
|||
case s3.ErrCodeBucketAlreadyOwnedByYou: |
|||
fmt.Println(s3.ErrCodeBucketAlreadyOwnedByYou, aerr.Error()) |
|||
default: |
|||
fmt.Println(aerr.Error()) |
|||
} |
|||
} else { |
|||
// Print the error, cast err to awserr.Error to get the Code and
|
|||
// Message from an error.
|
|||
fmt.Println(err.Error()) |
|||
} |
|||
return |
|||
} |
|||
|
|||
fmt.Println(result) |
|||
|
|||
} |
|||
|
|||
func TestListBuckets(t *testing.T) { |
|||
|
|||
input := &s3.PutObjectInput{ |
|||
ACL: aws.String("authenticated-read"), |
|||
Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), |
|||
Bucket: aws.String("theBucket"), |
|||
Key: aws.String("exampleobject"), |
|||
} |
|||
|
|||
result, err := svc.PutObject(input) |
|||
if err != nil { |
|||
if aerr, ok := err.(awserr.Error); ok { |
|||
switch aerr.Code() { |
|||
default: |
|||
fmt.Println(aerr.Error()) |
|||
} |
|||
} else { |
|||
// Print the error, cast err to awserr.Error to get the Code and
|
|||
// Message from an error.
|
|||
fmt.Println(err.Error()) |
|||
} |
|||
return |
|||
} |
|||
|
|||
fmt.Println(result) |
|||
|
|||
} |
|||
|
|||
func TestPutObject(t *testing.T) { |
|||
|
|||
result, err := svc.ListBuckets(nil) |
|||
if err != nil { |
|||
exitErrorf("Unable to list buckets, %v", err) |
|||
} |
|||
|
|||
fmt.Println("Buckets:") |
|||
|
|||
for _, b := range result.Buckets { |
|||
fmt.Printf("* %s created on %s\n", |
|||
aws.StringValue(b.Name), aws.TimeValue(b.CreationDate)) |
|||
} |
|||
|
|||
} |
|||
|
|||
func exitErrorf(msg string, args ...interface{}) { |
|||
fmt.Fprintf(os.Stderr, msg+"\n", args...) |
|||
os.Exit(1) |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue