Add resource service #19
|
@ -1,7 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"log"
|
"log"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
)
|
)
|
||||||
|
@ -15,6 +14,9 @@ type Resource struct {
|
||||||
Url string `toml:"url"`
|
Url string `toml:"url"`
|
||||||
Mime string `toml:"mime"`
|
Mime string `toml:"mime"`
|
||||||
}
|
}
|
||||||
|
func (self Resource) Get() ([]byte, error) {
|
||||||
|
return ioutil.ReadFile(self.Url[7:])
|
||||||
|
}
|
||||||
|
|
||||||
type ResourceDConfig struct {
|
type ResourceDConfig struct {
|
||||||
Enabled bool `toml:"enabled"`
|
Enabled bool `toml:"enabled"`
|
||||||
|
@ -36,20 +38,36 @@ func main() {
|
||||||
if err != nil { panic(err) }
|
if err != nil { panic(err) }
|
||||||
_ = a
|
_ = a
|
||||||
|
|
||||||
app := fiber.New()
|
app := fiber.New(fiber.Config {
|
||||||
|
Prefork: true,
|
||||||
|
CaseSensitive: false,
|
||||||
|
StrictRouting: true,
|
||||||
|
ServerHeader: "",
|
||||||
|
AppName: "blek! File resourceD",
|
||||||
|
})
|
||||||
|
|
||||||
|
app.Use(func (c *fiber.Ctx) error {
|
||||||
|
if ! conf.ResourceD.Enabled {
|
||||||
|
return c.Status(fiber.StatusNotFound).SendString("ResourceD is disabled")
|
||||||
|
}
|
||||||
|
return c.Next()
|
||||||
|
})
|
||||||
|
|
||||||
app.Get("/:id", func (c *fiber.Ctx) error {
|
app.Get("/:id", func (c *fiber.Ctx) error {
|
||||||
|
|
||||||
if ! conf.ResourceD.Enabled {
|
|
||||||
return c.Status(fiber.StatusNotFound).SendString("Resource not found")
|
|
||||||
}
|
|
||||||
|
|
||||||
res, exists := conf.Resource[c.Params("id")]
|
res, exists := conf.Resource[c.Params("id")]
|
||||||
if ! exists {
|
if ! exists {
|
||||||
return c.Status(fiber.StatusNotFound).SendString("Resource not found")
|
return c.Status(fiber.StatusNotFound).SendString("Resource not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.SendString(fmt.Sprintf("Id: %s\nUrl: %s\nType: %s", c.Params("id"), res.Url, res.Mime))
|
data, err := res.Get()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Response().Header.SetContentType(res.Mime)
|
||||||
|
c.Response().Header.SetContentLength(len(data))
|
||||||
|
return c.Send(data)
|
||||||
})
|
})
|
||||||
|
|
||||||
log.Fatal(app.Listen(conf.ResourceD.ListenURL))
|
log.Fatal(app.Listen(conf.ResourceD.ListenURL))
|
||||||
|
|
Loading…
Reference in New Issue