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.