diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2019-07-24 09:02:43 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2019-07-24 09:05:09 +0200 |
commit | b72ecc321c315bafe40cc7406e87e088564ab8a9 (patch) | |
tree | 98d492c626fefdaacf1cc57db7a055fc28bf12e5 /fbin/db.py | |
parent | 86a34a0cccd79311c89ee1f3eacbff4f97d97e1f (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.py | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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 |