Now instead of computing dir size on every request use a variable that is updated using inotify.
This commit is contained in:
parent
f7390b0763
commit
9a4461ac4e
@ -49,9 +49,11 @@ type UploadHandlers struct {
|
||||
logErr *logging.Logger
|
||||
logUpload *logging.Logger
|
||||
logDownload *logging.Logger
|
||||
|
||||
uploadDirSize *int64
|
||||
}
|
||||
|
||||
func NewUploadHandlers(conf *configuration.Configuration, lErr, lUp, lDown *logging.Logger) *UploadHandlers {
|
||||
func NewUploadHandlers(conf *configuration.Configuration, lErr, lUp, lDown *logging.Logger, uploadDirSize *int64) *UploadHandlers {
|
||||
compiledTemplates = amber.MustCompileDir(conf.WebDir+"/templates",
|
||||
amber.DefaultDirOptions, defaultAmberOptions)
|
||||
|
||||
@ -59,22 +61,17 @@ func NewUploadHandlers(conf *configuration.Configuration, lErr, lUp, lDown *logg
|
||||
conf: conf,
|
||||
logErr: lErr,
|
||||
logUpload: lUp,
|
||||
logDownload: lDown}
|
||||
logDownload: lDown,
|
||||
uploadDirSize: uploadDirSize}
|
||||
}
|
||||
|
||||
func (h *UploadHandlers) Index(w http.ResponseWriter, r *http.Request) {
|
||||
var storCapacity int64 = h.conf.Uploads.Limits.Storage << 20
|
||||
var fMaxSize int64 = h.conf.Uploads.Limits.FileSize << 20
|
||||
var storSize int64 = 0
|
||||
|
||||
storSize, err := utils.DirectorySize(h.conf.Uploads.Directory)
|
||||
if err != nil {
|
||||
h.logErr.Printf("cannot compute storage size: %s", err)
|
||||
}
|
||||
|
||||
_, _, capStr := utils.ConvertFileSize(storCapacity)
|
||||
_, _, usedStr := utils.ConvertFileSize(storSize)
|
||||
_, _, availStr := utils.ConvertFileSize(storCapacity - storSize)
|
||||
_, _, usedStr := utils.ConvertFileSize(*h.uploadDirSize)
|
||||
_, _, availStr := utils.ConvertFileSize(storCapacity - *h.uploadDirSize)
|
||||
_, _, fMaxSzStr := utils.ConvertFileSize(fMaxSize)
|
||||
|
||||
if err := compiledTemplates["index"].Execute(w, &IndexData{
|
||||
@ -82,9 +79,9 @@ func (h *UploadHandlers) Index(w http.ResponseWriter, r *http.Request) {
|
||||
FileMaxSz: fMaxSzStr,
|
||||
StorageCapacity: storCapacity,
|
||||
StorageCapStr: capStr,
|
||||
StorageAvailable: storCapacity - storSize,
|
||||
StorageAvailable: storCapacity - *h.uploadDirSize,
|
||||
StorageAvailStr: availStr,
|
||||
StorageUsed: storSize,
|
||||
StorageUsed: *h.uploadDirSize,
|
||||
StorageUsedStr: usedStr,
|
||||
}); err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
|
Loading…
Reference in New Issue
Block a user