mirror of
https://github.com/dutchcoders/transfer.sh.git
synced 2024-11-27 06:30:19 +01:00
commit
46c53c1cab
4 changed files with 19 additions and 10 deletions
2
go.mod
2
go.mod
|
@ -7,7 +7,7 @@ require (
|
||||||
github.com/VojtechVitek/ratelimit v0.0.0-20160722140851-dc172bc0f6d2
|
github.com/VojtechVitek/ratelimit v0.0.0-20160722140851-dc172bc0f6d2
|
||||||
github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e
|
github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e
|
||||||
github.com/dutchcoders/go-virustotal v0.0.0-20140923143438-24cc8e6fa329
|
github.com/dutchcoders/go-virustotal v0.0.0-20140923143438-24cc8e6fa329
|
||||||
github.com/dutchcoders/transfer.sh-web v0.0.0-20190121065949-e7d393abbb07
|
github.com/dutchcoders/transfer.sh-web v0.0.0-20190518121139-cc1ae43f8d69
|
||||||
github.com/elazarl/go-bindata-assetfs v1.0.0
|
github.com/elazarl/go-bindata-assetfs v1.0.0
|
||||||
github.com/fatih/color v1.7.0
|
github.com/fatih/color v1.7.0
|
||||||
github.com/garyburd/redigo v1.6.0 // indirect
|
github.com/garyburd/redigo v1.6.0 // indirect
|
||||||
|
|
2
go.sum
2
go.sum
|
@ -13,6 +13,8 @@ github.com/dutchcoders/go-virustotal v0.0.0-20140923143438-24cc8e6fa329 h1:ERqCk
|
||||||
github.com/dutchcoders/go-virustotal v0.0.0-20140923143438-24cc8e6fa329/go.mod h1:G5qOfE5bQZ5scycLpB7fYWgN4y3xdfXo+pYWM8z2epY=
|
github.com/dutchcoders/go-virustotal v0.0.0-20140923143438-24cc8e6fa329/go.mod h1:G5qOfE5bQZ5scycLpB7fYWgN4y3xdfXo+pYWM8z2epY=
|
||||||
github.com/dutchcoders/transfer.sh-web v0.0.0-20190121065949-e7d393abbb07 h1:L4PB9nsRpVJqpza1aVwroFcShe/N3wh2QcWVpca53jk=
|
github.com/dutchcoders/transfer.sh-web v0.0.0-20190121065949-e7d393abbb07 h1:L4PB9nsRpVJqpza1aVwroFcShe/N3wh2QcWVpca53jk=
|
||||||
github.com/dutchcoders/transfer.sh-web v0.0.0-20190121065949-e7d393abbb07/go.mod h1:UjR1zlrq/R2Sef7e4q3TeJm4HcbLh4vRzlCEGJP+wLg=
|
github.com/dutchcoders/transfer.sh-web v0.0.0-20190121065949-e7d393abbb07/go.mod h1:UjR1zlrq/R2Sef7e4q3TeJm4HcbLh4vRzlCEGJP+wLg=
|
||||||
|
github.com/dutchcoders/transfer.sh-web v0.0.0-20190518121139-cc1ae43f8d69 h1:Eb27agCP67voPNMPDEPrXBp+IEWp4ephgX9B3jfR4Uk=
|
||||||
|
github.com/dutchcoders/transfer.sh-web v0.0.0-20190518121139-cc1ae43f8d69/go.mod h1:UjR1zlrq/R2Sef7e4q3TeJm4HcbLh4vRzlCEGJP+wLg=
|
||||||
github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk=
|
github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk=
|
||||||
github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
|
github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
|
||||||
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
|
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
|
||||||
|
|
|
@ -63,6 +63,8 @@ import (
|
||||||
"github.com/skip2/go-qrcode"
|
"github.com/skip2/go-qrcode"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const getPathPart = "get"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
htmlTemplates = initHTMLTemplates()
|
htmlTemplates = initHTMLTemplates()
|
||||||
textTemplates = initTextTemplates()
|
textTemplates = initTextTemplates()
|
||||||
|
@ -146,9 +148,12 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
templatePath = "download.html"
|
templatePath = "download.html"
|
||||||
}
|
}
|
||||||
|
|
||||||
resolvedUrl := resolveUrl(r, getURL(r).ResolveReference(r.URL), true)
|
relativeURL, _ := url.Parse(path.Join(s.proxyPath, token, filename))
|
||||||
|
resolvedURL := resolveURL(r, getURL(r).ResolveReference(relativeURL), true)
|
||||||
|
relativeURLGet, _ := url.Parse(path.Join(s.proxyPath, getPathPart, token, filename))
|
||||||
|
resolvedURLGet := resolveURL(r, getURL(r).ResolveReference(relativeURLGet), true)
|
||||||
var png []byte
|
var png []byte
|
||||||
png, err = qrcode.Encode(resolvedUrl, qrcode.High, 150)
|
png, err = qrcode.Encode(resolvedURL, qrcode.High, 150)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
|
@ -164,6 +169,7 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
Content html_template.HTML
|
Content html_template.HTML
|
||||||
Filename string
|
Filename string
|
||||||
Url string
|
Url string
|
||||||
|
UrlGet string
|
||||||
Hostname string
|
Hostname string
|
||||||
WebAddress string
|
WebAddress string
|
||||||
ContentLength uint64
|
ContentLength uint64
|
||||||
|
@ -174,7 +180,8 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
contentType,
|
contentType,
|
||||||
content,
|
content,
|
||||||
filename,
|
filename,
|
||||||
resolvedUrl,
|
resolvedURL,
|
||||||
|
resolvedURLGet,
|
||||||
hostname,
|
hostname,
|
||||||
webAddress,
|
webAddress,
|
||||||
contentLength,
|
contentLength,
|
||||||
|
@ -482,14 +489,14 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
filename = url.QueryEscape(filename)
|
filename = url.QueryEscape(filename)
|
||||||
relativeURL, _ := url.Parse(path.Join(s.proxyPath, token, filename))
|
relativeURL, _ := url.Parse(path.Join(s.proxyPath, token, filename))
|
||||||
deleteUrl, _ := url.Parse(path.Join(s.proxyPath, token, filename, metadata.DeletionToken))
|
deleteURL, _ := url.Parse(path.Join(s.proxyPath, token, filename, metadata.DeletionToken))
|
||||||
|
|
||||||
w.Header().Set("X-Url-Delete", resolveUrl(r, deleteUrl, true))
|
w.Header().Set("X-Url-Delete", resolveURL(r, deleteURL, true))
|
||||||
|
|
||||||
fmt.Fprint(w, resolveUrl(r, relativeURL, false))
|
fmt.Fprint(w, resolveURL(r, relativeURL, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
func resolveUrl(r *http.Request, u *url.URL, absolutePath bool) string {
|
func resolveURL(r *http.Request, u *url.URL, absolutePath bool) string {
|
||||||
if absolutePath {
|
if absolutePath {
|
||||||
r.URL.Path = ""
|
r.URL.Path = ""
|
||||||
}
|
}
|
||||||
|
@ -517,7 +524,7 @@ func resolveWebAddress(r *http.Request, proxyPath string) string {
|
||||||
var webAddress string
|
var webAddress string
|
||||||
|
|
||||||
if len(proxyPath) == 0 {
|
if len(proxyPath) == 0 {
|
||||||
webAddress = fmt.Sprintf("%s://%s/",
|
webAddress = fmt.Sprintf("%s://%s/",
|
||||||
url.ResolveReference(url).Scheme,
|
url.ResolveReference(url).Scheme,
|
||||||
url.ResolveReference(url).Host)
|
url.ResolveReference(url).Host)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -269,7 +269,7 @@ type Server struct {
|
||||||
tempPath string
|
tempPath string
|
||||||
|
|
||||||
webPath string
|
webPath string
|
||||||
proxyPath string
|
proxyPath string
|
||||||
gaKey string
|
gaKey string
|
||||||
userVoiceKey string
|
userVoiceKey string
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue