2017-10-05 28 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

相关问题