2017-10-05 5 views
1

My Flask 앱은 사용자가 가입하여 비용을 지불 한 후 고해상도 이미지를 제공합니다. 이미지는 /static/img/wall/ 디렉토리에 저장되며 wall_001.jpg, wall_002.jpg 등과 같이 이름이 지정됩니다. 나는 지금이 명명 체계를 고수해야한다. 숫자는 기본적으로 ID 역할을하며 앱에서 사용합니다.Flask에서 파일의 경로 이름 바꾸기

결제 후 이미지를 표시 할 때 이미지 <img src="/static/img/wall/wall_001.jpg" alt="Wallpaper">에 대한 직접 경로를 사용합니다.

누구든지 원하는 경우 해당 링크를 새 탭에 쉽게 붙여 넣을 수 있으며 wall_002.jpg, wall_003.jpg 등에 액세스 할 수 있습니다.

결제 후 이미지 경로를 바꾸거나 파일 이름을 임의로 지정할 수 있습니까? ?

새 파일을 만들고 캐시 폴더에 저장하기 때문에이 문제를 처리하기 위해 Flask-Resize/Flask-Images를 사용했습니다. 그러나 프로덕션에있는 해당 확장 물을 가진 having problems입니다.

편집 : 이것은 중복 질문이 아닙니다. 그것은 다른 시나리오입니다. 제 질문은 로그인뿐 아니라 지불에 대해서도 다루고 있습니다. 따라서 원본 URL을 임의로 지정하거나 이름을 변경하거나 마스크해야 할 필요가 있습니다.

+0

보십시오 인증 및 로그인 페이지를 추가. – rocksteady

+0

@rocksteady 이미 소셜 네트워크 용 OAuth2와 함께 Flask-Login을 사용하고 있습니다. 나는'/ static/img/wall/wall_001.jpg' 파일에 접근을 제한하는 방법을 모르겠다 ... – mapr

답변

0

파일에 대한 os.link() 또는 부드러운 os.symlink() 링크를 만들어 고객에게 표시하십시오. 이름은 무작위로 임의 파이썬을 사용하여 생성 될 수있다() 유래에

 
    import random 
    import string 

    def randomword(length): 
     return ''.join(random.choice(string.lowercase) for i in range(length)) 

코드 심판, 사용자 "STH"

+0

이것은 중복 질문이 아니다. 문제는 광고 응용 프로그램 파일 시스템 구조를 공개적으로 방지하는 방법입니다. – Michael

관련 문제