|
|
@@ -14,9 +14,10 @@ import (
|
|
|
)
|
|
|
|
|
|
type WebdavUploader struct {
|
|
|
- url string
|
|
|
- username string
|
|
|
- password string
|
|
|
+ url string
|
|
|
+ username string
|
|
|
+ password string
|
|
|
+ public_url string
|
|
|
}
|
|
|
|
|
|
var netTransport = &http.Transport{
|
|
|
@@ -33,7 +34,8 @@ var netClient = &http.Client{
|
|
|
|
|
|
func (u *WebdavUploader) Upload(pa string) (string, error) {
|
|
|
url, _ := url.Parse(u.url)
|
|
|
- url.Path = path.Join(url.Path, util.GetRandomString(20)+".png")
|
|
|
+ filename := util.GetRandomString(20) + ".png"
|
|
|
+ url.Path = path.Join(url.Path, filename)
|
|
|
|
|
|
imgData, err := ioutil.ReadFile(pa)
|
|
|
req, err := http.NewRequest("PUT", url.String(), bytes.NewReader(imgData))
|
|
|
@@ -53,13 +55,18 @@ func (u *WebdavUploader) Upload(pa string) (string, error) {
|
|
|
return "", fmt.Errorf("Failed to upload image. Returned statuscode %v body %s", res.StatusCode, body)
|
|
|
}
|
|
|
|
|
|
- return url.String(), nil
|
|
|
+ if u.public_url != "" {
|
|
|
+ return (u.public_url + filename), nil
|
|
|
+ } else {
|
|
|
+ return url.String(), nil
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-func NewWebdavImageUploader(url, username, passwrod string) (*WebdavUploader, error) {
|
|
|
+func NewWebdavImageUploader(url, username, password, public_url string) (*WebdavUploader, error) {
|
|
|
return &WebdavUploader{
|
|
|
- url: url,
|
|
|
- username: username,
|
|
|
- password: passwrod,
|
|
|
+ url: url,
|
|
|
+ username: username,
|
|
|
+ password: password,
|
|
|
+ public_url: public_url,
|
|
|
}, nil
|
|
|
}
|