如何使用fastapi重命名上传的文件

How to rename uploaded file with fastapi

我有一个允许用户上传文件的端点。我想将文件重命名为随机且唯一的文件名,但不知道如何更改文件名。我当前的代码如下,它将文件保存到 files/filename

@router.post('/qualifications/file')
async def create_file(files: UploadFile = File(...)):
   file_location = f"files/{files.filename}"
   with open(file_location, "wb+") as file_object:
      file_object.write(files.file.read())
      return {"info": f"file '{files.filename}' saved at '{file_location}'"}

您可以生成自定义文件位置而不是使用 files.filename 吗?您可能需要弄清楚 files.filename 扩展是什么,然后将其传递到您正在创建的新 file_name 中。


@router.post('/qualifications/file')
async def create_file(files: UploadFile = File(...)):\

   file_name = "some_random_name.txt"

   file_location = f"files/{file_name}"

   with open(file_location, "wb+") as file_object:
      file_object.write(files.file.read())
      return {"info": f"file '{file_name}' saved at '{file_location}'"}