无法加载用户使用arc on prod在heroku上上载的图像

xt0899hw  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(91)

我使用arc来保存用户上传并添加到数据库中。在localhost上,一切都很好(在lib/app_web/endpoint.ex中)

plug Plug.Static,
    at: "/uploads", from: Path.expand("./uploads"), gzip: false

我不知道我可以在Heroku上的哪里保存上传,以便我可以使用https://app.herokuapp.com/uploads/images/...访问它们

wz1wpwve

wz1wpwve1#

直接上传文件到Heroku的问题是,每次你的dyno停止/重新启动时,它们都会被删除。所以你需要在Heroku应用程序之外存储这些文件。一个解决方案是使用AWS S3(如果你没有很多数据,它相当便宜,如果你存储20 GB,有100 GB的流量,每月半美元)。
Heroku help pages
Heroku文件系统是短暂的-这意味着在dyno运行时对文件系统的任何更改都只会持续到dyno关闭或重新启动。每个dyno都使用最近部署的文件系统的干净副本启动。这与许多基于容器的系统(如Docker)的操作类似。
此外,在正常操作下,dynos将在一个被称为“循环”的过程中每天重新启动。
这两个事实意味着Heroku上的文件系统不适合持久存储数据。(用于数据)或专用文件存储服务,如AWS S3(对于静态文件)。如果不使用“I don“我不想通过AWS创建一个帐户来创建S3存储桶,我们这里还有一些插件,用于处理静态资产的存储和处理https://elements.heroku.com/addons

相关问题