s3manager-web/main.go

68 lines
1.3 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-09 21:20:40 +01:00
minio "github.com/minio/minio-go"
2016-12-18 22:54:21 +01:00
)
2017-03-09 21:20:40 +01:00
// Server is a server containing a minio client
type Server struct {
2017-03-12 16:07:59 +01:00
S3 *minio.Client
2017-03-09 21:20:40 +01:00
}
2016-12-18 22:54:21 +01:00
func main() {
port := os.Getenv("PORT")
if len(port) == 0 {
port = "8080"
}
2017-03-10 10:54:30 +01:00
s := &Server{
2017-03-12 16:07:59 +01:00
S3: NewMinioClient(),
2017-03-10 10:54:30 +01:00
}
2017-03-10 11:21:46 +01:00
router := mux.NewRouter()
2017-03-10 10:54:30 +01:00
router.
Methods("GET").
Path("/").
2017-03-10 11:12:20 +01:00
Handler(Adapt(IndexHandler(), Logger()))
2017-03-10 10:54:30 +01:00
router.
Methods("GET").
Path("/buckets").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.BucketsPageHandler(), Logger()))
2017-03-10 10:54:30 +01:00
router.
Methods("GET").
Path("/buckets/{bucketName}").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.BucketPageHandler(), Logger()))
2017-03-10 10:54:30 +01:00
api := router.PathPrefix("/api").Subrouter()
buckets := api.PathPrefix("/buckets").Subrouter()
buckets.
Methods("POST").
Path("").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.CreateBucketHandler(), Logger()))
2017-03-10 10:54:30 +01:00
buckets.
Methods("DELETE").
Path("/{bucketName}").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.DeleteBucketHandler(), Logger()))
2017-03-10 10:54:30 +01:00
buckets.
Methods("POST").
Path("/{bucketName}/objects").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.CreateObjectHandler(), Logger()))
2017-03-10 10:54:30 +01:00
buckets.
Methods("GET").
Path("/{bucketName}/objects/{objectName}").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.GetObjectHandler(), Logger()))
2017-03-10 10:54:30 +01:00
buckets.
Methods("DELETE").
Path("/{bucketName}/objects/{objectName}").
2017-03-10 11:12:20 +01:00
Handler(Adapt(s.DeleteObjectHandler(), Logger()))
2016-12-18 22:54:21 +01:00
2016-12-20 19:47:36 +01:00
log.Fatal(http.ListenAndServe(":"+port, router))
2016-12-18 22:54:21 +01:00
}