From 9e4b92772cfe2ff0b8406bff0a8fc4509eb02f56 Mon Sep 17 00:00:00 2001 From: Las Zenow Date: Wed, 18 Sep 2013 23:56:49 +0200 Subject: [PATCH] Add filesize to the books collection --- database.go | 1 + store.go | 8 ++++---- upload.go | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/database.go b/database.go index 662860c..e22693f 100644 --- a/database.go +++ b/database.go @@ -28,6 +28,7 @@ type Book struct { Rights string Meta string File bson.ObjectId + FileSize int Cover bson.ObjectId CoverSmall bson.ObjectId Active bool diff --git a/store.go b/store.go index e50e65f..ea638fb 100644 --- a/store.go +++ b/store.go @@ -24,17 +24,17 @@ func OpenBook(id bson.ObjectId) (*epubgo.Epub, error) { return epubgo.Load(reader, int64(len(buff))) } -func StoreNewFile(name string, file io.Reader) (bson.ObjectId, error) { +func StoreNewFile(name string, file io.Reader) (bson.ObjectId, int64, error) { fs := db.GetFS(FS_BOOKS) fw, err := fs.Create(name) if err != nil { - return "", err + return "", 0, err } defer fw.Close() - _, err = io.Copy(fw, file) + size, err := io.Copy(fw, file) id, _ := fw.Id().(bson.ObjectId) - return id, err + return id, size, err } func DeleteFile(id bson.ObjectId) error { diff --git a/upload.go b/upload.go index 3c0dfaa..35a0bcc 100644 --- a/upload.go +++ b/upload.go @@ -41,13 +41,14 @@ func processFile(req uploadRequest) { book := parseFile(epub) title, _ := book["title"].(string) req.file.Seek(0, 0) - id, err := StoreNewFile(title+".epub", req.file) + id, size, err := StoreNewFile(title+".epub", req.file) if err != nil { log.Println("Error storing book (", title, "):", err) return } book["file"] = id + book["filesize"] = size err = db.InsertBook(book) if err != nil { log.Println("Error storing metadata (", title, "):", err)