s3manager-web/main.go

88 lines
1.8 KiB
Go
Raw Normal View History

2016-12-18 22:54:21 +01:00
package main
import (
"log"
"net/http"
"os"
2017-03-09 21:20:40 +01:00
2017-03-10 10:54:30 +01:00
"github.com/gorilla/mux"
2017-03-30 22:48:27 +02:00
"github.com/mastertinner/s3-manager/adapters"
"github.com/mastertinner/s3-manager/buckets"
"github.com/mastertinner/s3-manager/datasources"
"github.com/mastertinner/s3-manager/objects"
"github.com/mastertinner/s3-manager/views"
2016-12-18 22:54:21 +01:00
)
func main() {
2017-03-30 22:48:27 +02:00
s3 := datasources.NewMinioClient()
2017-03-31 09:56:06 +02:00
logger := log.New(os.Stdout, "", log.Ldate|log.Ltime)
2017-03-30 14:00:06 +02:00
router := mux.NewRouter()
2017-03-10 10:54:30 +01:00
router.
Methods("GET").
Path("/").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
views.IndexHandler(),
adapters.Logging(logger),
))
2017-03-10 10:54:30 +01:00
router.
Methods("GET").
Path("/buckets").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
views.BucketsHandler(s3),
adapters.Logging(logger),
))
2017-03-10 10:54:30 +01:00
router.
Methods("GET").
Path("/buckets/{bucketName}").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
views.BucketHandler(s3),
adapters.Logging(logger),
))
2017-03-10 10:54:30 +01:00
api := router.PathPrefix("/api").Subrouter()
2017-03-30 22:48:27 +02:00
br := api.PathPrefix("/buckets").Subrouter()
br.
2017-03-10 10:54:30 +01:00
Methods("POST").
Path("").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
buckets.CreateHandler(s3),
adapters.Logging(logger),
))
br.
2017-03-10 10:54:30 +01:00
Methods("DELETE").
Path("/{bucketName}").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
buckets.DeleteHandler(s3),
adapters.Logging(logger),
))
br.
2017-03-10 10:54:30 +01:00
Methods("POST").
Path("/{bucketName}/objects").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
objects.CreateHandler(s3),
adapters.Logging(logger),
))
br.
2017-03-10 10:54:30 +01:00
Methods("GET").
Path("/{bucketName}/objects/{objectName}").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
objects.GetHandler(s3),
adapters.Logging(logger),
))
br.
2017-03-10 10:54:30 +01:00
Methods("DELETE").
Path("/{bucketName}/objects/{objectName}").
2017-03-30 22:48:27 +02:00
Handler(adapters.Adapt(
objects.DeleteHandler(s3),
adapters.Logging(logger),
))
2016-12-18 22:54:21 +01:00
2017-03-30 14:00:06 +02:00
port := os.Getenv("PORT")
if len(port) == 0 {
port = "8080"
}
2016-12-20 19:47:36 +01:00
log.Fatal(http.ListenAndServe(":"+port, router))
2016-12-18 22:54:21 +01:00
}