Documentation ¶
Index ¶
- Constants
- func Decode(input string) int64
- func Encode(number int64) string
- func LoveHandler(h http.Handler) http.HandlerFunc
- func RenderFloat(format string, n float64) string
- func RenderInteger(format string, n int) string
- type LocalStorage
- func (s *LocalStorage) Get(token string, filename string) (reader io.ReadCloser, contentType string, contentLength uint64, err error)
- func (s *LocalStorage) Head(token string, filename string) (contentType string, contentLength uint64, err error)
- func (s *LocalStorage) IsNotExist(err error) bool
- func (s *LocalStorage) Put(token string, filename string, reader io.Reader, contentType string, ...) error
- func (s *LocalStorage) Type() string
- type Metadata
- type OptionFn
- func ClamavHost(s string) OptionFn
- func EnableProfiler() OptionFn
- func ForceHTTPs() OptionFn
- func Listener(s string) OptionFn
- func LogFile(s string) OptionFn
- func ProfileListener(s string) OptionFn
- func RateLimit(requests int) OptionFn
- func TLSConfig(cert, pk string) OptionFn
- func TLSListener(s string) OptionFn
- func TempPath(s string) OptionFn
- func UseLetsEncrypt(hosts []string) OptionFn
- func UseStorage(s Storage) OptionFn
- func VirustotalKey(s string) OptionFn
- func WebPath(s string) OptionFn
- type S3Storage
- func (s *S3Storage) Get(token string, filename string) (reader io.ReadCloser, contentType string, contentLength uint64, err error)
- func (s *S3Storage) Head(token string, filename string) (contentType string, contentLength uint64, err error)
- func (s *S3Storage) IsNotExist(err error) bool
- func (s *S3Storage) Put(token string, filename string, reader io.Reader, contentType string, ...) (err error)
- func (s *S3Storage) Type() string
- type Server
- type Storage
Constants ¶
View Source
const ( // characters used for short-urls SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" // someone set us up the bomb !! BASE = int64(len(SYMBOLS)) )
View Source
const SERVER_INFO = "transfer.sh"
Variables ¶
This section is empty.
Functions ¶
func Encode ¶
encodes a number into our *base* representation TODO can this be made better with some bitshifting?
func LoveHandler ¶
func LoveHandler(h http.Handler) http.HandlerFunc
Create a log handler for every request it receives.
func RenderFloat ¶
func RenderInteger ¶
Types ¶
type LocalStorage ¶
type LocalStorage struct { Storage // contains filtered or unexported fields }
func NewLocalStorage ¶
func NewLocalStorage(basedir string) (*LocalStorage, error)
func (*LocalStorage) Get ¶
func (s *LocalStorage) Get(token string, filename string) (reader io.ReadCloser, contentType string, contentLength uint64, err error)
func (*LocalStorage) IsNotExist ¶
func (s *LocalStorage) IsNotExist(err error) bool
func (*LocalStorage) Type ¶
func (s *LocalStorage) Type() string
type Metadata ¶
type Metadata struct { // ContentType is the original uploading content type ContentType string // Secret as knowledge to delete file // Secret string // Downloads is the actual number of downloads Downloads int // MaxDownloads contains the maximum numbers of downloads MaxDownloads int // MaxDate contains the max age of the file MaxDate time.Time }
type OptionFn ¶
type OptionFn func(*Server)
func ClamavHost ¶
func EnableProfiler ¶
func EnableProfiler() OptionFn
func ForceHTTPs ¶
func ForceHTTPs() OptionFn
func ProfileListener ¶
func TLSListener ¶
func UseLetsEncrypt ¶
func UseStorage ¶
func VirustotalKey ¶
type S3Storage ¶
type S3Storage struct { Storage // contains filtered or unexported fields }
func NewS3Storage ¶
func (*S3Storage) IsNotExist ¶
type Server ¶
type Server struct { VirusTotalKey string ClamAVDaemonHost string ListenerString string TLSListenerString string ProfileListenerString string Certificate string LetsEncryptCache string // contains filtered or unexported fields }
func (*Server) CheckMetadata ¶
func (*Server) RedirectHandler ¶
func (s *Server) RedirectHandler(h http.Handler) http.HandlerFunc
type Storage ¶
type Storage interface { Get(token string, filename string) (reader io.ReadCloser, contentType string, contentLength uint64, err error) Head(token string, filename string) (contentType string, contentLength uint64, err error) Put(token string, filename string, reader io.Reader, contentType string, contentLength uint64) error IsNotExist(err error) bool Type() string }
Click to show internal directories.
Click to hide internal directories.