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