mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
basic s3 tests
This commit is contained in:
parent
bfabb4159b
commit
0b17b379a8
111
test/s3/basic/basic_test.go
Normal file
111
test/s3/basic/basic_test.go
Normal file
|
@ -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)
|
||||
}
|
Loading…
Reference in a new issue