def upload_image(db): '''Updates and/or creates a image object into the database.''' if auth(request): filedata = request.files.file.file.read() md5sum = md5hash(filedata) try: image = db.query(Image).filter_by(md5sum=md5sum).one() image.timestamp = int(time.time()) image.count += 1 db.merge(image) except: image = Image(int(time.time()), request.forms.get('filetype'), filedata) db.add(image)
def upload_image(db): '''Updates and/or creates a image object into the database.''' if auth(request): filedata = request.files.file.file.read() md5sum = md5hash(filedata) try: image = db.query(Image).filter_by(md5sum=md5sum).one() image.timestamp = int(time.time()) image.count += 1 db.merge(image) except: image = Image(int(time.time()), request.forms.get('filetype'), filedata ) db.add(image)
def image(self, filename): ''' Image API Call. Uploads the image into the database. :param fobj: File-like object with the image contents :param filename: Filename or extension of the file. :type fobj: fileobject :type filename: str :return: None ''' if os.path.exists(filename): if self.host in ['localhost', '127.0.0.1']: with open(filename, 'rb') as imagefile: data = imagefile.read() md5 = md5hash(data) s = self.Session() if s.query(Image).filter_by(md5sum=md5).count() > 0: image = s.query(Image).filter_by(md5sum=md5).one() image.timestamp = int(time.time()) image.count += 1 s.merge(image) log.debug('DATABASE: Updated Image %s' % image.md5sum) else: ftype = filename.split('.')[-1] image = Image(int(time.time()), ftype, data, md5) s.add(image) log.debug('DATABASE: Added Image %s' % image.md5sum) s.commit() s.close() else: try: self.call('/post/image', {'filetype': filename.split('.')[-1]}, {'file': open(filename, 'rb')}) except: log.error('API: Upload Failed. %s=%skb' % (filename, os.path.getsize(filename) / 1024)) else: log.error('API: %s doesnt exist' % filename)