首页 文章

使用Heroku中的Amazon S3在Flask中提供静态图像的正确方法

提问于
浏览
1

我有一个生成图像的功能 . 我有一个 endpoints ,使用来自url的输入生成该图像,将其存储在文件系统上,并使用send_from_directory(path,name)为其提供服务,其中目录是我环境中的静态文件夹 .

我已经读过,不建议使用flask和Heroku来服务静态图像,我应该使用Amazon S3 .

我很困惑使用S3做正确的方法 .

选项是:

1)编写一个只将图像上传到我的存储桶的功能(这已经实现并正常工作)并提供在https://s3-us-west-1.amazonaws.com/bucketname/imagename路径中生成的图像

2)将我环境中的静态文件夹重定向到我的桶并在我上传到新图像时立即更新文件夹以供服务(我想瓶子的send_from_directory功能仍然有效,因为只有静态文件夹已经更改) . 当我查看这些选项时,我看到当我将新图像上传到存储桶时,它需要从头开始更新存储桶中的静态文件夹 . 我认为这不是最佳的,因为只添加了一个新图像 .

谢谢 .

1 回答

  • 1

    是的,你是正确的说,直接从Heroku提供静态文件并不是一个好主意,因为Heroku文件系统不会停滞并经常旋转(例如当你的应用程序上下循环时) .

    您可以使用Flask-S3来处理所有这些 . 另外,这是一个很棒的example of this in action.

相关问题