bws-rs 0.1.1

rust s3 backend service framework, quick build yourself s3 gateway, or object storage
Documentation
package tests

import (
	"context"
	"io"
	"os"
	"testing"

	"github.com/minio/minio-go/v7"
	"github.com/minio/minio-go/v7/pkg/credentials"
)

func TestCreateBucket(t *testing.T) {
	creds, err := minio.New("127.0.0.1:9900", &minio.Options{
		Secure: false, Creds: credentials.NewStaticV4("root", "root12345", ""),
		Region: "us-east-1",
	})
	if err != nil {
		t.Fatal(err)
	}
	_, err = creds.BucketExists(context.Background(), "test")
	if err != nil {
		t.Fatal(err)
	}
	err = creds.MakeBucket(context.Background(), "itest", minio.MakeBucketOptions{})
	if err != nil {
		t.Fatal(err)
	}
	bkts, err := creds.ListBuckets(context.Background())
	if err != nil {
		t.Fatal(err)
	}
	t.Log(bkts)
	err = creds.RemoveBucket(context.Background(), "test")
	if err != nil {
		t.Fatal(err)
	}
	err = creds.RemoveObject(context.Background(), "test", "test", minio.RemoveObjectOptions{})
	if err != nil {
		t.Fatal(err)
	}
	err = os.WriteFile("test.txt", []byte("hello"), 0o644)
	if err != nil {
		t.Fatal(err)
	}
	fd, err := os.OpenFile("test.txt", os.O_RDONLY, 0)
	if err != nil {
		t.Fatal(err)
	}
	defer fd.Close()
	_, err = creds.PutObject(context.Background(), "test", "hello/world", fd, 5, minio.PutObjectOptions{})
	if err != nil {
		t.Fatal(err)
	}
	resp, err := creds.GetObject(context.Background(), "test", "test", minio.GetObjectOptions{})
	if err != nil {
		t.Fatal(err)
	}
	content, err := io.ReadAll(resp)
	if err != nil {
		t.Fatal(err)
	}
	if string(content) != "hello" {
		t.Fatal("expect hello got [" + string(content) + "]")
	}
}