diff --git a/app/models/attachment.py b/app/models/attachment.py new file mode 100644 index 0000000..099076f --- /dev/null +++ b/app/models/attachment.py @@ -0,0 +1,32 @@ +from app import db +from hashlib import sha256 +import os + +class Attachment(db.Model): + __tablename__ = 'attachment' + id = db.Column(db.Integer, primary_key=True) + + # Original name of the file + name = db.Column(db.Unicode(64)) + + # Hash of the value + hashed = db.Column(db.Unicode(64)) + + # The comment linked with + comment_id = db.Column(db.Integer, db.ForeignKey('comment.id'), nullable=False) + comment = db.relationship('Comment', backref=backref('attachments', lazy='dynamic')) + + # The size of the file + size = db.Column(db.Integer) + + def __init__(self, file, comment): + self.name = file.filename + self.size = os.stat(file).st_size + self.hashed = self.hash_file(file) + self.comment = comment + + def hash_file(file): + with open(file,"rb") as f: + bytes = f.read() # read entire file as bytes + hashed = sha256(bytes).hexdigest() + return hashed \ No newline at end of file