Create/Delete Bucket
This commit is contained in:
parent
0aaae1782a
commit
a0bc80bcb4
11
README.md
11
README.md
|
@ -8,23 +8,14 @@ go get git.deuxfleurs.fr/quentin/s3lat@latest
|
||||||
|
|
||||||
## usage
|
## usage
|
||||||
|
|
||||||
with minio:
|
```bash
|
||||||
|
|
||||||
```
|
|
||||||
export ENDPOINT=[fc00:9a7a:9e::1]:9000
|
export ENDPOINT=[fc00:9a7a:9e::1]:9000
|
||||||
export AWS_ACCESS_KEY_ID=minioadmin
|
export AWS_ACCESS_KEY_ID=minioadmin
|
||||||
export AWS_SECRET_ACCESS_KEY=minioadmin
|
export AWS_SECRET_ACCESS_KEY=minioadmin
|
||||||
|
|
||||||
mc alias set minio-bench http://$ENDPOINT $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
|
|
||||||
mc mb minio-bench/bench1
|
|
||||||
|
|
||||||
s3lat
|
s3lat
|
||||||
```
|
```
|
||||||
|
|
||||||
## todo
|
|
||||||
|
|
||||||
create bucket from s3lat
|
|
||||||
|
|
||||||
## see also
|
## see also
|
||||||
|
|
||||||
- https://git.deuxfleurs.fr/quentin/benchmarks
|
- https://git.deuxfleurs.fr/quentin/benchmarks
|
||||||
|
|
5
go.mod
5
go.mod
|
@ -2,4 +2,7 @@ module git.deuxfleurs.fr/quentin/s3lat
|
||||||
|
|
||||||
go 1.16
|
go 1.16
|
||||||
|
|
||||||
require github.com/minio/minio-go/v7 v7.0.16
|
require (
|
||||||
|
github.com/google/uuid v1.1.1
|
||||||
|
github.com/minio/minio-go/v7 v7.0.16
|
||||||
|
)
|
||||||
|
|
36
main.go
36
main.go
|
@ -15,15 +15,13 @@ import (
|
||||||
|
|
||||||
"github.com/minio/minio-go/v7"
|
"github.com/minio/minio-go/v7"
|
||||||
"github.com/minio/minio-go/v7/pkg/credentials"
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
||||||
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// alias grg='sudo python3 main.py run dc1:dc1s1 garage -c /tmp/../tmp/garage-testnet/dc1/dc1s1/garage.toml'
|
|
||||||
// grg key new --name bench
|
|
||||||
// for i in $(seq 1 10); do grg bucket create bench$i; grg bucket allow --read --write bench$i --key bench; done
|
|
||||||
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
fmt.Printf("endpoint,nanoseconds\n")
|
fmt.Printf("endpoint,nanoseconds\n")
|
||||||
|
|
||||||
|
// Initial setup
|
||||||
_, isSSL := os.LookupEnv("SSL");
|
_, isSSL := os.LookupEnv("SSL");
|
||||||
opts := minio.Options {
|
opts := minio.Options {
|
||||||
Creds: credentials.NewStaticV4(os.Getenv("AWS_ACCESS_KEY_ID"), os.Getenv("AWS_SECRET_ACCESS_KEY"), ""),
|
Creds: credentials.NewStaticV4(os.Getenv("AWS_ACCESS_KEY_ID"), os.Getenv("AWS_SECRET_ACCESS_KEY"), ""),
|
||||||
|
@ -45,6 +43,15 @@ func main() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create Bucket
|
||||||
|
buck := uuid.New().String()
|
||||||
|
err = mc.MakeBucket(context.Background(), buck, minio.MakeBucketOptions{ })
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// List Buckets
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
_, err := mc.ListBuckets(context.Background())
|
_, err := mc.ListBuckets(context.Background())
|
||||||
|
@ -56,11 +63,12 @@ func main() {
|
||||||
fmt.Printf("listbuckets,%v\n", elapsed.Nanoseconds())
|
fmt.Printf("listbuckets,%v\n", elapsed.Nanoseconds())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PutObject
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
istr := strconv.Itoa(i)
|
istr := strconv.Itoa(i)
|
||||||
content := istr + " hello world " + istr
|
content := istr + " hello world " + istr
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
_, err := mc.PutObject(context.Background(), "bench1", "element"+istr, strings.NewReader(content), int64(len(content)), minio.PutObjectOptions{ContentType:"application/octet-stream"})
|
_, err := mc.PutObject(context.Background(), buck, "element"+istr, strings.NewReader(content), int64(len(content)), minio.PutObjectOptions{ContentType:"application/octet-stream"})
|
||||||
elapsed := time.Since(start)
|
elapsed := time.Since(start)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("failed putObject: ",err)
|
log.Fatal("failed putObject: ",err)
|
||||||
|
@ -69,12 +77,13 @@ func main() {
|
||||||
fmt.Printf("putobject,%v\n", elapsed.Nanoseconds())
|
fmt.Printf("putobject,%v\n", elapsed.Nanoseconds())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ListObject
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
objectCh := mc.ListObjects(ctx, "bench1", minio.ListObjectsOptions{
|
objectCh := mc.ListObjects(ctx, buck, minio.ListObjectsOptions{
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
})
|
})
|
||||||
for object := range objectCh {
|
for object := range objectCh {
|
||||||
|
@ -87,10 +96,11 @@ func main() {
|
||||||
fmt.Printf("listobjects,%v\n", elapsed.Nanoseconds())
|
fmt.Printf("listobjects,%v\n", elapsed.Nanoseconds())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetObject
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
istr := strconv.Itoa(i)
|
istr := strconv.Itoa(i)
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
object, err := mc.GetObject(context.Background(), "bench1", "element"+istr, minio.GetObjectOptions{})
|
object, err := mc.GetObject(context.Background(), buck, "element"+istr, minio.GetObjectOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
return
|
return
|
||||||
|
@ -103,10 +113,11 @@ func main() {
|
||||||
fmt.Printf("getobject,%v\n", elapsed.Nanoseconds())
|
fmt.Printf("getobject,%v\n", elapsed.Nanoseconds())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RemoveObject
|
||||||
for i := 0; i < 100; i++ {
|
for i := 0; i < 100; i++ {
|
||||||
istr := strconv.Itoa(i)
|
istr := strconv.Itoa(i)
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
err = mc.RemoveObject(context.Background(), "bench1", "element"+istr, minio.RemoveObjectOptions{})
|
err = mc.RemoveObject(context.Background(), buck, "element"+istr, minio.RemoveObjectOptions{})
|
||||||
elapsed := time.Since(start)
|
elapsed := time.Since(start)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -114,4 +125,11 @@ func main() {
|
||||||
}
|
}
|
||||||
fmt.Printf("removeobject,%v\n", elapsed.Nanoseconds())
|
fmt.Printf("removeobject,%v\n", elapsed.Nanoseconds())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RemoveBucket
|
||||||
|
err = mc.RemoveBucket(context.Background(), buck)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue