Files
versitygw/s3api/server.go
2023-05-17 00:47:03 +05:00

41 lines
852 B
Go

package s3api
import (
"encoding/xml"
"fmt"
"github.com/aws/aws-sdk-go-v2/service/s3"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/versity/scoutgw/backend"
)
type S3ApiServer struct {
app *fiber.App
backend backend.Backend
router *S3ApiRouter
port string
}
func New(app *fiber.App, be backend.Backend, port string) (s3ApiServer *S3ApiServer, err error) {
s3ApiServer = &S3ApiServer{app, be, new(S3ApiRouter), port}
app.Use(logger.New())
s3ApiServer.router.Init(app, be)
app.All("/*", func(ctx *fiber.Ctx) error {
fmt.Println(ctx.Method())
listBucket := new(s3.ListBucketsInput)
if b, err := xml.Marshal(listBucket); err != nil {
return err
} else {
return ctx.Send(b)
}
})
return
}
func (sa *S3ApiServer) Serve() (err error) {
return sa.app.Listen(sa.port)
}