|
|
@@ -10,7 +10,7 @@ from utils.debug import debug_view
|
|
|
from utils.http import make_json_response
|
|
|
from utils.permission import can_delete
|
|
|
from utils.crypto import secure_transport
|
|
|
-from utils.crypto import get_file_encrypt_cipher
|
|
|
+from utils.crypto import get_file_encrypt_cipher, get_padding
|
|
|
import base64
|
|
|
|
|
|
# Create your views here.
|
|
|
@@ -52,13 +52,18 @@ def upload_file(request):
|
|
|
file_path = file.get_path()
|
|
|
with open(file_path, 'wb+') as f:
|
|
|
if key:
|
|
|
- file_bytes = base64.b64decode(file_b64)
|
|
|
- enc_file_bytes = get_file_encrypt_cipher().encrypt(file_bytes)
|
|
|
+ print(key)
|
|
|
+ file.file_type, content_b64 = file_b64.split(',')
|
|
|
+ file.save()
|
|
|
+ file_bytes = base64.b64decode(content_b64)
|
|
|
+ file_bytes += get_padding(file_bytes)
|
|
|
+ enc_file_bytes = get_file_encrypt_cipher(key).encrypt(file_bytes)
|
|
|
f.write(enc_file_bytes)
|
|
|
else:
|
|
|
for chunk in file_obj.chunks():
|
|
|
f.write(chunk)
|
|
|
except Exception as e:
|
|
|
+ print(e)
|
|
|
file.delete()
|
|
|
return make_json_response(code=500, error='文件保存失败')
|
|
|
|
|
|
@@ -85,10 +90,12 @@ def download_file(request):
|
|
|
if file.key:
|
|
|
try:
|
|
|
enc_file_bytes = f.read()
|
|
|
- file_bytes = get_file_encrypt_cipher().decrypt(enc_file_bytes)
|
|
|
- file_b64 = base64.b64encode(file_bytes).decode()
|
|
|
+ file_bytes = get_file_encrypt_cipher(file.key).decrypt(enc_file_bytes)
|
|
|
+ content_b64 = base64.b64encode(file_bytes).decode()
|
|
|
+ file_b64 = f'{file.file_type},{content_b64}'
|
|
|
f.close()
|
|
|
- except:
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
return make_json_response(code=500, error='文件读取失败')
|
|
|
return make_json_response(file_b64=file_b64, **file.to_json())
|
|
|
else:
|