forked from FabianVowie/Lithium
Roman Zipp
3 years ago
committed by
Fabian Vowie
No known key found for this signature in database
GPG Key ID: C27317C33B27C410
3 changed files with 91 additions and 0 deletions
-
50controllers/file.go
-
6main.go
-
35main_test.go
@ -0,0 +1,50 @@ |
|||
package controllers |
|||
|
|||
import ( |
|||
"encoding/json" |
|||
"io/ioutil" |
|||
"net/http" |
|||
"time" |
|||
|
|||
"github.com/geplauder/lithium/pipelines" |
|||
"github.com/geplauder/lithium/settings" |
|||
"github.com/geplauder/lithium/storage" |
|||
) |
|||
|
|||
type File struct { |
|||
Bucket string `json:"bucket"` |
|||
FileName string `json:"file_name"` |
|||
Size int `json:"size"` |
|||
ModifiedAt time.Time `json:"modified_at"` |
|||
} |
|||
|
|||
func FileHandler(w http.ResponseWriter, r *http.Request, pipes []pipelines.IPipeline, storageProvider storage.IStorageProvider, appSettings settings.Settings) { |
|||
buckets, err := ioutil.ReadDir("./files/" + appSettings.StorageProvider.BasePath) |
|||
if err != nil { |
|||
json.NewEncoder(w).Encode(struct { |
|||
Files []File `json:"files"` |
|||
}{}) |
|||
return |
|||
} |
|||
|
|||
var files []File |
|||
|
|||
for _, b := range buckets { |
|||
bucketFiles, err := ioutil.ReadDir("./files/" + appSettings.StorageProvider.BasePath + "/" + b.Name()) |
|||
if err != nil { |
|||
writeError(w, 500, "Base path not found") |
|||
return |
|||
} |
|||
|
|||
for _, f := range bucketFiles { |
|||
files = append(files, File{b.Name(), f.Name(), int(f.Size()), f.ModTime()}) |
|||
} |
|||
} |
|||
|
|||
err = json.NewEncoder(w).Encode(struct { |
|||
Files []File `json:"files"` |
|||
}{files}) |
|||
if err != nil { |
|||
w.WriteHeader(http.StatusInternalServerError) |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue