mirror of
https://github.com/fiatjaf/khatru.git
synced 2025-03-28 18:51:52 +01:00
blossom: implement bud06 (upload requirements).
This commit is contained in:
parent
7f878121fc
commit
92d1a5b671
@ -264,6 +264,29 @@ func (bs BlossomServer) handleDelete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (bs BlossomServer) handleUploadCheck(w http.ResponseWriter, r *http.Request) {
|
||||||
|
auth, err := readAuthorization(r)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
mimetype := r.Header.Get("X-Content-Type")
|
||||||
|
exts, _ := mime.ExtensionsByType(mimetype)
|
||||||
|
var ext string
|
||||||
|
if len(exts) > 0 {
|
||||||
|
ext = exts[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, rb := range bs.RejectUpload {
|
||||||
|
reject, reason, code := rb(r.Context(), auth, ext)
|
||||||
|
if reject {
|
||||||
|
http.Error(w, reason, code)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (bs BlossomServer) handleMirror(w http.ResponseWriter, r *http.Request) {
|
func (bs BlossomServer) handleMirror(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,10 +32,16 @@ func New(rl *khatru.Relay, serviceURL string) *BlossomServer {
|
|||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
|
|
||||||
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||||
if r.URL.Path == "/upload" && r.Method == "PUT" {
|
if r.URL.Path == "/upload" {
|
||||||
setCors(w)
|
if r.Method == "PUT" {
|
||||||
bs.handleUpload(w, r)
|
setCors(w)
|
||||||
return
|
bs.handleUpload(w, r)
|
||||||
|
return
|
||||||
|
} else if r.Method == "HEAD" {
|
||||||
|
setCors(w)
|
||||||
|
bs.handleUploadCheck(w, r)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(r.URL.Path, "/list/") && r.Method == "GET" {
|
if strings.HasPrefix(r.URL.Path, "/list/") && r.Method == "GET" {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user