boyska 6a87db688d TEST size limit | 6 years ago | |
---|---|---|
cmd | 6 years ago | |
res | 6 years ago | |
.gitignore | 6 years ago | |
README.md | 6 years ago | |
conf.go | 6 years ago | |
conf_test.go | 6 years ago | |
confload.go | 6 years ago | |
doc.go | 6 years ago | |
fileutils.go | 6 years ago | |
fileutils_test.go | 6 years ago | |
http.go | 6 years ago | |
http_test.go | 6 years ago | |
httpui.go | 6 years ago |
Un uploader fatto apposta per ondarossa
Cose principali:
Configurazione. Un file YAML in cui l'unità di base è lo "share". Ogni share ha
type Share struct {
Name OBBLIGATORIO
Dir OBBLIGATORIA
Description
Authorized lista di glob di utenti autorizzati.
SizeLimit esempio 20M
ExtList lista di estensioni esempio ogg,oga,mp3,aac
}
type Global struct {
Excluded []Glob
ViewURLBase string
ViewPathBase string
}
Sezione globale: si possono escludere alcune persone globalmente dal servizio. Esempio: molesto@ondarossa.info, worm@ondarossa.info. Se un utente è bloccato globalmente ma è dentro l'Authorized di un certo share, è autorizzato.
type UserHome {
PathPrefix string
Create bool
}
func (*uh UserHome) GetShare(username string) (Share)
Share per-utente: si può creare una share "dinamica" per ogni utente (home) tipo /megaror/Redazione/redattor@/%h Se c'è una share con nome uguale a home_tizio@ondarossa.info si possono cambiare le impostazioni per quella home. Ovvero una share statica sovrascrive una share dinamica. Ad esempio per dire che home_leditanellapresa@ondarossa.info è scrivibile anche da nerd@ondarossa.info si può creare la share esplicitamente e mettere tutti i desiderati (incluso il "proprietario", non c'è automatismo) dentro Authorized Un utente bloccato globalmente non ha la home, a meno che la sezione non sia creata manualmente e l'utente venga autorizzato.
type URLFetcher struct {
Enabled bool
AllowedURLs []Glob
SizeLimit ???
}