디스크에있는 것과 다른 이름으로 파일을 다운로드하도록 브라우저에 지시하는 방법이 있습니까?

루시퍼 N.

Flask를 사용하여 일부 사용자가 업로드 한 파일을 제공하려고하는데 이상한 문제가 있거나 적어도 검색으로 솔루션을 찾을 수없는 문제가 있습니다. 업로드 후 원래 파일 이름을 유지하기 위해 파일이 필요하므로 사용자가 다운로드 할 때 동일한 이름을 갖게됩니다. 원래 나는 데이터베이스를 전혀 다루고 싶지 않았고, 무작위로 이름이 지정된 폴더에 각 파일을 저장하고 다운로드 할 위치를 지정하여 파일 이름 충돌 문제를 해결했습니다. 그러나 나중에 데이터베이스를 사용하여 파일에 대한 정보를 저장해야하는 문제가 발생했지만 파일 이름 충돌을 처리하는 이전 방법은 그대로 유지했습니다. 이제 파일에 대한 모델이 있고 이름을 저장하는 것은 다른 필드를 추가하는 것만 큼 간단하므로 큰 문제는 아닙니다. 나는 결정했다. 파일을 저장하기 위해 Amazon S3를 사용하는 것에 대한 구현을 작성한 후 꽤 어리석은 일입니다. 분명히 S3는 기존 파일 시스템과 같은 방식으로 폴더를 처리하지 않으며, S3에서 프로그래밍 방식으로 폴더를 생성하는 방법을 알아내는 복잡한 작업을 처리하고 싶지 않습니다. 돌이켜 보면 이것은 어리석은 처리 방법이었습니다. 이 문제는 데이터베이스를 파이처럼 쉽게 만드는 SQLalchemy와 같은 것이 존재하는 경우에 발생합니다. 어쨌든 폴더를 사용하지 않고 s3에 같은 이름의 여러 파일을 저장하는 방법이 필요합니다. 업로드 후 임의의 UUID로 파일 이름을 변경 한 다음 다운로드 할 때 (사용자가 페이지를 방문하고 다운로드 버튼을 누르면 URL에 파일 이름이 필요하지 않음) 브라우저에 저장하도록 지시하는 것을 생각했습니다. 데이터베이스에서 검색된 원래 이름으로 파일. 이것을 Python w / Flask에서 구현하는 방법이 있습니까? 배포 될 때 웹 서버가 파일 제공을 처리하도록 할 계획입니다. 서버에서 이와 같은 작업을 수행 할 수 있습니까? 아니면 더 스마트 한 솔루션이 있습니까?

루시퍼 N.

내가 바보. Flask API 문서 에서 파일 시스템의 파일 이름과 다른 경우 매개 변수 attachment_filename포함 할 수 있다고 말합니다 send_from_directory.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관