Handle "entity too large" errors immediately instead of retrying.
This commit is contained in:
parent
b9cacf6d33
commit
2c4c9fdde6
@ -141,6 +141,11 @@ func (u *Upload) processUpload() error {
|
||||
sleepForRetries(retriesRemaining)
|
||||
continue
|
||||
} else {
|
||||
if resp.StatusCode == 413 {
|
||||
// just fail immediately, we know this means the file was too big
|
||||
daulog.SendLog("413 received - file too large", daulog.LogTypeError)
|
||||
return errors.New("received 413 - file too large")
|
||||
}
|
||||
|
||||
if resp.StatusCode != 200 {
|
||||
// {"message": "Request entity too large", "code": 40005}
|
||||
|
@ -4,8 +4,8 @@ import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"testing"
|
||||
"os"
|
||||
"testing"
|
||||
// "github.com/tardisx/discord-auto-upload/config"
|
||||
)
|
||||
|
||||
@ -26,6 +26,14 @@ func DoGoodUpload(req *http.Request) (*http.Response, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
func DoTooBigUpload(req *http.Request) (*http.Response, error) {
|
||||
r := ioutil.NopCloser(bytes.NewReader([]byte(`{"message": "Request entity too large", "code": 40005}`)))
|
||||
return &http.Response{
|
||||
StatusCode: 413,
|
||||
Body: r,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func TestSuccessfulUpload(t *testing.T) {
|
||||
// create temporary file, processUpload requires that it exists, even though
|
||||
// we will not really be uploading it here
|
||||
@ -43,5 +51,19 @@ func TestSuccessfulUpload(t *testing.T) {
|
||||
if u.Url != "https://cdn.discordapp.com/attachments/849615269706203171/851092588332449812/dau480457962.png" {
|
||||
t.Error("URL wrong")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestTooBigUpload(t *testing.T) {
|
||||
// create temporary file, processUpload requires that it exists, even though
|
||||
// we will not really be uploading it here
|
||||
f, _ := os.CreateTemp("", "dautest-upload-*")
|
||||
defer os.Remove(f.Name())
|
||||
u := Upload{webhookURL: "https://127.0.0.1/", originalFilename: f.Name()}
|
||||
u.Client = &MockClient{DoFunc: DoTooBigUpload}
|
||||
err := u.processUpload()
|
||||
if err == nil {
|
||||
t.Error("error did not occur?")
|
||||
} else if err.Error() != "received 413 - file too large" {
|
||||
t.Errorf("wrong error occurred: %s", err.Error())
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user