summaryrefslogtreecommitdiff
path: root/fbin/db.py
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2019-07-24 09:02:43 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2019-07-24 09:05:09 +0200
commitb72ecc321c315bafe40cc7406e87e088564ab8a9 (patch)
tree98d492c626fefdaacf1cc57db7a055fc28bf12e5 /fbin/db.py
parent86a34a0cccd79311c89ee1f3eacbff4f97d97e1f (diff)
Add file storage modules
Allows for storing files other places than the local file system. Currently the local filesystem and S3 are supported.
Diffstat (limited to 'fbin/db.py')
-rw-r--r--fbin/db.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/fbin/db.py b/fbin/db.py
index 2bf153b..be79c76 100644
--- a/fbin/db.py
+++ b/fbin/db.py
@@ -4,7 +4,7 @@ import mimetypes
import os
from flask import current_app
-from sqlalchemy import create_engine, Column, Integer, String, DateTime, Text, Index, ForeignKey, Boolean, JSON
+from sqlalchemy import create_engine, Column, Integer, String, DateTime, Text, Index, ForeignKey, Boolean, JSON, BigInteger
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relation, backref
from sqlalchemy.orm.exc import NoResultFound
@@ -48,6 +48,7 @@ class File(Base):
id = Column(Integer, primary_key = True)
hash = Column(String, unique = True, index = True)
filename = Column(String)
+ size = Column(BigInteger)
date = Column(DateTime)
user_id = Column(Integer, ForeignKey('users.id'), nullable = True)
ip = Column(String)
@@ -55,9 +56,10 @@ class File(Base):
scanned = Column(Boolean, nullable=False, default=False)
blocked_reason = Column(JSON)
- def __init__(self, hash, filename, date, user_id = None, ip = None):
+ def __init__(self, hash, filename, size, date, user_id = None, ip = None):
self.hash = hash
self.filename = filename
+ self.size = size
self.date = date
self.user_id = user_id
self.ip = ip
@@ -82,6 +84,8 @@ class File(Base):
def get_size(self):
try:
+ if self.size:
+ return self.size
return os.path.getsize(self.get_path())
except OSError:
return None