【问题标题】:chmod a folder on heroku appchmod heroku 应用程序上的文件夹
【发布时间】:2012-10-24 00:56:57
【问题描述】:

这个问题可能看起来有点愚蠢。我是 Web 开发的新手,我只是在编写一个简单的 Web 应用程序开始。我正在使用烧瓶。该应用程序从其他一些站点获取一些图像并将它们保存到文件夹“savedimages”。问题是我在heroku上部署它之后,我无法打开“savedimages”文件夹中的任何图像。我猜这是因为文件夹的 chmod 没有设置为 755 左右……那么我该如何 chmod 这个文件夹呢?

谢谢!

【问题讨论】:

  • Heroku 应用程序有一个ephemeral filesystem 是否重要——写入文件系统的任何内容都可以并且将会在没有通知的情况下消失?如果savedimages 是一个缓存,这可能没问题;如果没有,您可能需要store the data elsewhere
  • 当应用程序处于活动状态时,您不会丢失文件系统的内容,但是一旦您停止实例,一切都会消失。但这不是这里的问题。出现什么样的错误?是什么让您说“无法打开 'savedimages' 文件夹中的任何图像”?
  • 我使用 urllib2 从 Internet 获取图像,然后将其保存在“savedimages”文件夹中。但是当我尝试直接访问图像时,例如,example.com/savedimages/image1.jpg 它显示“未找到服务器上未找到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。”我很确定文件已保存,因为我在 localhost 上对其进行了测试。你也可以通过 ssh 进入你的 heroku 应用程序并使用文件夹做一些事情吗?

标签: python heroku flask chmod


【解决方案1】:

问题很可能不在于权限关闭 - Flask 很可能安装在您的应用程序的根目录中,并且您的 Flask 应用程序中没有任何规则来提供图像。尝试向您的应用添加规则:

@app.route("/savedimages/<picture>")
def display_picture(picture):
    return "The picture is: {}".format(picture)

如果显示,则只需将您的退货更改为使用flask.send_file

file_name = werkzeug.security.safe_join("/path/to/savedimages", picture)
return send_file(file_name)

【讨论】:

  • 谢谢。这很棒!只是一个注释。它实际上是 werkzeug.security.safe_join 。不过谢谢!
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多