Bug fixes, clean up, stuff
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import aiofiles, datetime, hashlib, mimetypes, os, pathlib, shutil, time
|
||||
import aiofiles, datetime, hashlib, mimetypes, os, pathlib, random, shutil, time
|
||||
from fastapi import APIRouter, Body, Depends, File, Form, Header, HTTPException, Query, Response, status, UploadFile
|
||||
from fastapi.responses import FileResponse, StreamingResponse
|
||||
# from fastapi.responses import StreamingResponse
|
||||
@@ -14,7 +14,7 @@ from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select,
|
||||
|
||||
# from .api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
|
||||
|
||||
from app.methods.hosted_file_methods import create_hosted_file_obj, handle_delete_hosted_file, load_hosted_file_obj, save_file, save_file_to_hosted_file, create_hosted_file_link, delete_hosted_file_link, get_hosted_file_link_rec_list, lookup_file_hash
|
||||
from app.methods.hosted_file_methods import create_hosted_file_obj, handle_delete_hosted_file, load_hosted_file_obj, save_file, save_file_to_hosted_file, create_hosted_file_link, delete_hosted_file_link, get_hosted_file_link_rec_list, lookup_file_hash, check_for_hosted_file_hash_file
|
||||
|
||||
from app.models.hosted_file_models import Hosted_File_Base
|
||||
from app.models.response_models import Resp_Body_Base, mk_resp
|
||||
@@ -423,7 +423,7 @@ async def upload_files(
|
||||
log.debug(locals())
|
||||
|
||||
# NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING
|
||||
# time.sleep(3.5) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING
|
||||
time.sleep(random.choice((3.5, 4.5, 5, 6.5))) # NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING
|
||||
# NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING NOTE: WARNING
|
||||
|
||||
account_id_random = account_id # This is for the account random str ID
|
||||
@@ -894,6 +894,53 @@ async def get_hosted_file_obj(
|
||||
# ### END ### API Hosted File ### get_hosted_file_obj() ###
|
||||
|
||||
|
||||
|
||||
# ### BEGIN ### API Hosted File ### get_hosted_file_obj_w_hash() ###
|
||||
# Updated 2021-09-07
|
||||
@router.get('/hash/{hosted_file_hash}', response_model=Resp_Body_Base)
|
||||
async def check_hosted_file_obj_w_hash(
|
||||
hosted_file_hash: str = Query(..., min_length=64, max_length=64), # Expects SHA256 hash
|
||||
check_for_local: Optional[bool] = True,
|
||||
|
||||
commons: Common_Route_Params = Depends(common_route_params),
|
||||
):
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
|
||||
if hosted_file_id := lookup_file_hash(
|
||||
file_hash = hosted_file_hash,
|
||||
):
|
||||
|
||||
hosted_file_dict = None
|
||||
if hosted_file_obj := load_hosted_file_obj(
|
||||
hosted_file_id = hosted_file_id,
|
||||
):
|
||||
hosted_file_dict = hosted_file_obj.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset)
|
||||
else:
|
||||
# NOTE: This should not ever happen if the ID was already found.
|
||||
return mk_resp(data=False, status_code=404, status_message=f'Hosted file with hash was found in the database, but something went wrong while loading the details from the database: Hosted File ID: {hosted_file_id}; Hosted File Hash: {hosted_file_hash}', response=commons.response) # Not Found
|
||||
|
||||
if check_for_local:
|
||||
if check_for_hosted_file_hash_file_results := check_for_hosted_file_hash_file(
|
||||
file_hash = hosted_file_hash,
|
||||
sub_dir = hosted_file_obj.subdirectory_path,
|
||||
):
|
||||
hosted_file_dict = hosted_file_obj.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset)
|
||||
hosted_file_dict['hosted_file_found_check'] = True
|
||||
hosted_file_dict['hosted_file_size_check'] = check_for_hosted_file_hash_file_results['file_size'] # File size in bytes
|
||||
|
||||
else:
|
||||
return mk_resp(data=False, status_code=500, response=commons.response) # Bad Request
|
||||
|
||||
else:
|
||||
return mk_resp(data=False, status_code=404, status_message=f'Hosted file with hash not found in the database: {hosted_file_hash}', response=commons.response) # Not Found
|
||||
|
||||
return mk_resp(data=hosted_file_dict, response=commons.response)
|
||||
#return mk_resp(data=hosted_file_obj)
|
||||
# ### END ### API Hosted File ### get_hosted_file_obj() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Hosted File ### download_tmp() ###
|
||||
# Updated 2023-04-05
|
||||
@router.get('/tmp/{subdirectory}/{filename}/download', response_model=Resp_Body_Base)
|
||||
|
||||
Reference in New Issue
Block a user