2017-10-05 33 views
1

我的Flask應用程序在用戶註冊並付款後提供高分辨率圖像。圖像存儲在/static/img/wall/目錄中,並命名爲wall_001.jpgwall_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與生產中的這些擴展。

編輯:這不是一個重複的問題。這是一個不同的場景。我的問題不僅涉及登錄,還涉及付款。因此,需要隨機化/重命名/掩蓋原始網址。

+0

嘗試增加驗證和登錄頁面。 – rocksteady

+0

@rocksteady我已經在社交網絡中使用Flask-Login和OAuth2。我想我不知道如何限制對'/ static/img/wall/wall_001.jpg'中的這些文件的訪問(等等)...... – mapr

回答

0

創建硬件os.link()或軟os.symlink()鏈接到該文件,然後將該名稱顯示給客戶。可以隨機使用python隨機生成的名稱()

 
    import random 
    import string 

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

代碼參考,用戶「某物」關於計算器

+0

這不是一個重複的問題。問題是如何公開阻止廣告應用程序文件系統結構。 – Michael

相關問題