mirror of
https://github.com/lus/pasty.git
synced 2023-08-10 21:13:09 +03:00
write Content-Type and Content-Length headers
This commit is contained in:
parent
9708263373
commit
695b900f28
@ -91,7 +91,7 @@ func main() {
|
|||||||
PasteIDLength: cfg.PasteIDLength,
|
PasteIDLength: cfg.PasteIDLength,
|
||||||
PasteIDCharset: cfg.PasteIDCharset,
|
PasteIDCharset: cfg.PasteIDCharset,
|
||||||
PasteLengthCap: cfg.PasteLengthCap,
|
PasteLengthCap: cfg.PasteLengthCap,
|
||||||
ModificationTokensEnabled: cfg.ModificationTokens,
|
ModificationTokensEnabled: cfg.ModificationTokensEnabled,
|
||||||
ModificationTokenLength: cfg.ModificationTokenLength,
|
ModificationTokenLength: cfg.ModificationTokenLength,
|
||||||
ModificationTokenCharset: cfg.ModificationTokenCharset,
|
ModificationTokenCharset: cfg.ModificationTokenCharset,
|
||||||
}
|
}
|
||||||
|
@ -22,19 +22,19 @@ var removedKeys = []string{
|
|||||||
}
|
}
|
||||||
|
|
||||||
var keyRedirects = map[string][]string{
|
var keyRedirects = map[string][]string{
|
||||||
"PASTY_ADDRESS": {"PASTY_WEB_ADDRESS"},
|
"PASTY_ADDRESS": {"PASTY_WEB_ADDRESS"},
|
||||||
"PASTY_STORAGE_DRIVER": {"PASTY_STORAGE_TYPE"},
|
"PASTY_STORAGE_DRIVER": {"PASTY_STORAGE_TYPE"},
|
||||||
"PASTY_POSTGRES_DSN": {"PASTY_STORAGE_POSTGRES_DSN"},
|
"PASTY_POSTGRES_DSN": {"PASTY_STORAGE_POSTGRES_DSN"},
|
||||||
"PASTY_PASTE_ID_LENGTH": {"PASTY_ID_LENGTH"},
|
"PASTY_PASTE_ID_LENGTH": {"PASTY_ID_LENGTH"},
|
||||||
"PASTY_PASTE_ID_CHARSET": {"PASTY_ID_CHARACTERS"},
|
"PASTY_PASTE_ID_CHARSET": {"PASTY_ID_CHARACTERS"},
|
||||||
"PASTY_PASTE_LENGTH_CAP": {"PASTY_LENGTH_CAP"},
|
"PASTY_PASTE_LENGTH_CAP": {"PASTY_LENGTH_CAP"},
|
||||||
"PASTY_REPORTS_ENABLED": {"PASTY_REPORTS_ENABLED"},
|
"PASTY_REPORTS_ENABLED": {"PASTY_REPORTS_ENABLED"},
|
||||||
"PASTY_REPORTS_WEBHOOK_URL": {"PASTY_REPORT_WEBHOOK"},
|
"PASTY_REPORTS_WEBHOOK_URL": {"PASTY_REPORT_WEBHOOK"},
|
||||||
"PASTY_REPORTS_WEBHOOK_TOKEN": {"PASTY_REPORT_WEBHOOK_TOKEN"},
|
"PASTY_REPORTS_WEBHOOK_TOKEN": {"PASTY_REPORT_WEBHOOK_TOKEN"},
|
||||||
"PASTY_MODIFICATION_TOKEN_CHARSET": {"PASTY_MODIFICATION_TOKEN_CHARACTERS"},
|
"PASTY_MODIFICATION_TOKENS_ENABLED": {"PASTY_MODIFICATION_TOKENS", "PASTY_DELETION_TOKENS"},
|
||||||
"PASTY_MODIFICATION_TOKENS": {"PASTY_DELETION_TOKENS"},
|
"PASTY_MODIFICATION_TOKEN_CHARSET": {"PASTY_MODIFICATION_TOKEN_CHARACTERS"},
|
||||||
"PASTY_MODIFICATION_TOKEN_MASTER": {"PASTY_DELETION_TOKEN_MASTER"},
|
"PASTY_MODIFICATION_TOKEN_MASTER": {"PASTY_DELETION_TOKEN_MASTER"},
|
||||||
"PASTY_MODIFICATION_TOKEN_LENGTH": {"PASTY_DELETION_TOKEN_LENGTH"},
|
"PASTY_MODIFICATION_TOKEN_LENGTH": {"PASTY_DELETION_TOKEN_LENGTH"},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compatibility runs several compatibility measurements.
|
// Compatibility runs several compatibility measurements.
|
||||||
@ -55,7 +55,7 @@ func Compatibility() {
|
|||||||
if err := os.Setenv(newKey, os.Getenv(oldKey)); err != nil {
|
if err := os.Setenv(newKey, os.Getenv(oldKey)); err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
log.Warn().Msgf("You have set the '%s' environment variable. This variable has been renamed to '%s'. The value has been propagated, but please consider changing your configuration to avoid further complications.", oldKey, newKey)
|
log.Warn().Msgf("You have set the '%s' environment variable. This variable has been renamed to '%s'. The value has been propagated, but please consider adjusting your configuration to avoid further complications.", oldKey, newKey)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,21 +7,21 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
LogLevel string `default:"info" split_words:"true"`
|
LogLevel string `default:"info" split_words:"true"`
|
||||||
Address string `default:":8080" split_words:"true"`
|
Address string `default:":8080" split_words:"true"`
|
||||||
StorageDriver string `default:"sqlite" split_words:"true"`
|
StorageDriver string `default:"sqlite" split_words:"true"`
|
||||||
PasteIDLength int `default:"6" split_words:"true"`
|
PasteIDLength int `default:"6" split_words:"true"`
|
||||||
PasteIDCharset string `default:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" split_words:"true"`
|
PasteIDCharset string `default:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" split_words:"true"`
|
||||||
ModificationTokens bool `default:"true" split_words:"true"`
|
ModificationTokensEnabled bool `default:"true" split_words:"true"`
|
||||||
ModificationTokenMaster string `split_words:"true"`
|
ModificationTokenMaster string `split_words:"true"`
|
||||||
ModificationTokenLength int `default:"12" split_words:"true"`
|
ModificationTokenLength int `default:"12" split_words:"true"`
|
||||||
ModificationTokenCharset string `default:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" split_words:"true"`
|
ModificationTokenCharset string `default:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" split_words:"true"`
|
||||||
RateLimit string `default:"30-M" split_words:"true"`
|
RateLimit string `default:"30-M" split_words:"true"`
|
||||||
PasteLengthCap int `default:"50000" split_words:"true"`
|
PasteLengthCap int `default:"50000" split_words:"true"`
|
||||||
AutoDelete *AutoDeleteConfig `split_words:"true"`
|
AutoDelete *AutoDeleteConfig `split_words:"true"`
|
||||||
Reports *ReportConfig
|
Reports *ReportConfig
|
||||||
Postgres *PostgresConfig
|
Postgres *PostgresConfig
|
||||||
SQLite *SQLiteConfig
|
SQLite *SQLiteConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type AutoDeleteConfig struct {
|
type AutoDeleteConfig struct {
|
||||||
|
@ -4,14 +4,19 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/lus/pasty/pkg/chizerolog"
|
"github.com/lus/pasty/pkg/chizerolog"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func writeErr(request *http.Request, writer http.ResponseWriter, err error) {
|
func writeErr(request *http.Request, writer http.ResponseWriter, err error) {
|
||||||
chizerolog.InjectError(request, err)
|
chizerolog.InjectError(request, err)
|
||||||
|
writer.Header().Set("Content-Type", "text/plain")
|
||||||
|
writer.Header().Set("Content-Length", strconv.Itoa(len(err.Error())))
|
||||||
writeString(writer, http.StatusInternalServerError, err.Error())
|
writeString(writer, http.StatusInternalServerError, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeString(writer http.ResponseWriter, status int, value string) {
|
func writeString(writer http.ResponseWriter, status int, value string) {
|
||||||
|
writer.Header().Set("Content-Type", "text/plain")
|
||||||
|
writer.Header().Set("Content-Length", strconv.Itoa(len(value)))
|
||||||
writer.WriteHeader(status)
|
writer.WriteHeader(status)
|
||||||
writer.Write([]byte(value))
|
writer.Write([]byte(value))
|
||||||
}
|
}
|
||||||
@ -22,6 +27,8 @@ func writeJSON(writer http.ResponseWriter, status int, value any) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
writer.Header().Set("Content-Type", "application/json")
|
||||||
|
writer.Header().Set("Content-Length", strconv.Itoa(len(jsonData)))
|
||||||
writer.WriteHeader(status)
|
writer.WriteHeader(status)
|
||||||
writer.Write(jsonData)
|
writer.Write(jsonData)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user