quivr/backend/utils/file.py
Stan Girard a3ca7ecb37
Back/refacto files (#240)
* feat(docker): added docker for prod

* feat(refacto): moved to modules
2023-06-03 23:12:42 +02:00

37 lines
1006 B
Python

import hashlib
from fastapi import UploadFile
def convert_bytes(bytes, precision=2):
"""Converts bytes into a human-friendly format."""
abbreviations = ['B', 'KB', 'MB']
if bytes <= 0:
return '0 B'
size = bytes
index = 0
while size >= 1024 and index < len(abbreviations) - 1:
size /= 1024
index += 1
return f'{size:.{precision}f} {abbreviations[index]}'
def get_file_size(file: UploadFile):
# move the cursor to the end of the file
file.file._file.seek(0, 2)
file_size = file.file._file.tell() # Getting the size of the file
# move the cursor back to the beginning of the file
file.file.seek(0)
return file_size
def compute_sha1_from_file(file_path):
with open(file_path, "rb") as file:
bytes = file.read()
readable_hash = compute_sha1_from_content(bytes)
return readable_hash
def compute_sha1_from_content(content):
readable_hash = hashlib.sha1(content).hexdigest()
return readable_hash