update the upload handler to use bucket service
This commit is contained in:
parent
8a8a466915
commit
642f16b048
@ -1,6 +1,11 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"git.keircn.com/keiran/termcloud/internal/db"
|
||||||
"git.keircn.com/keiran/termcloud/internal/handlers"
|
"git.keircn.com/keiran/termcloud/internal/handlers"
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
"github.com/labstack/echo/v4/middleware"
|
"github.com/labstack/echo/v4/middleware"
|
||||||
@ -8,21 +13,50 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
pool, err := db.NewPool(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Failed to create database pool: %v", err)
|
||||||
|
}
|
||||||
|
defer db.ClosePool(pool)
|
||||||
|
|
||||||
|
bucketService := db.NewBucketService(pool)
|
||||||
|
h := handlers.NewHandlers(bucketService)
|
||||||
|
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
e.Use(middleware.BodyLimit("100M"))
|
e.Use(middleware.BodyLimit("100M"))
|
||||||
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
|
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
|
||||||
AllowOrigins: []string{"*"},
|
AllowOrigins: []string{"*"},
|
||||||
AllowMethods: []string{echo.GET, echo.POST},
|
AllowMethods: []string{echo.GET, echo.POST, echo.PUT, echo.DELETE},
|
||||||
|
AllowHeaders: []string{"*"},
|
||||||
}))
|
}))
|
||||||
e.Use(middleware.GzipWithConfig(middleware.GzipConfig{
|
e.Use(middleware.GzipWithConfig(middleware.GzipConfig{
|
||||||
Level: 5,
|
Level: 5,
|
||||||
}))
|
}))
|
||||||
e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(rate.Limit(20))))
|
e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(rate.Limit(20))))
|
||||||
e.Static("/uploads", "uploads")
|
|
||||||
|
|
||||||
e.GET("/", handlers.RootHandler)
|
e.Static("/storage", "storage")
|
||||||
e.POST("/upload", handlers.UploadHandler)
|
|
||||||
|
|
||||||
e.Logger.Fatal(e.Start(":8080"))
|
e.GET("/", h.RootHandler)
|
||||||
|
|
||||||
|
api := e.Group("/api/v1")
|
||||||
|
api.Use(h.AuthMiddleware)
|
||||||
|
|
||||||
|
api.GET("/user", h.GetUserInfoHandler)
|
||||||
|
api.GET("/buckets", h.ListBucketsHandler)
|
||||||
|
api.POST("/buckets", h.CreateBucketHandler)
|
||||||
|
api.DELETE("/buckets/:bucket", h.DeleteBucketHandler)
|
||||||
|
api.GET("/buckets/:bucket/objects", h.ListObjectsHandler)
|
||||||
|
api.PUT("/buckets/:bucket/objects/*", h.UploadObjectHandler)
|
||||||
|
api.GET("/buckets/:bucket/objects/*", h.GetObjectHandler)
|
||||||
|
api.DELETE("/buckets/:bucket/objects/*", h.DeleteObjectHandler)
|
||||||
|
|
||||||
|
port := os.Getenv("PORT")
|
||||||
|
if port == "" {
|
||||||
|
port = "8080"
|
||||||
|
}
|
||||||
|
|
||||||
|
e.Logger.Fatal(e.Start(":" + port))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,7 +98,7 @@ func (h *Handlers) DeleteBucketHandler(c echo.Context) error {
|
|||||||
func (h *Handlers) UploadObjectHandler(c echo.Context) error {
|
func (h *Handlers) UploadObjectHandler(c echo.Context) error {
|
||||||
user := c.Get("user").(*db.User)
|
user := c.Get("user").(*db.User)
|
||||||
bucketName := c.Param("bucket")
|
bucketName := c.Param("bucket")
|
||||||
objectKey := c.Param("key")
|
objectKey := c.Param("*")
|
||||||
|
|
||||||
bucket, err := h.bucketService.GetBucket(context.Background(), bucketName, user.ID)
|
bucket, err := h.bucketService.GetBucket(context.Background(), bucketName, user.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user