gpt4 book ai didi

ruby-on-rails - Heroku:在没有本地文件系统的情况下为大型动态生成的 Assets 提供服务

转载 作者:行者123 更新时间:2023-12-04 03:35:16 25 4
gpt4 key购买 nike

我有一个关于托管大型动态生成 Assets 和Heroku 的问题。 .

我的应用程序将提供其基础数据子集的批量下载,其中包括每 24 小时生成一次的大文件 (>100 MB)。如果我在服务器上运行,我只需将文件写入公共(public)目录。

但据我了解,这对于 Heroku 是不可能的。可以写入/tmp 目录,但保证文件的生命周期 seems to be defined就一个请求-响应周期而言,而不是后台作业。

我想使用 S3 来托管下载文件。 S3 gem确实支持流式上传,但仅适用于本地文件系统上已存在的文件。看起来需要预先知道内容大小,这在我的情况下是不可能的。

所以这看起来像一个catch-22。我试图避免在上传到 S3 时在内存中创建一个巨大的字符串,但 S3 仅支持本地文件系统上已经存在的文件的流式上传。

给定一个无法写入本地文件系统的 Rails 应用程序,如何在不在内存中创建大字符串的情况下提供每天生成的大文件?

最佳答案

${RAILS_ROOT}/tmp (不是/tmp,它在您的应用程序目录中)在您的过程中持续存在。如果您正在运行后台 DJ,则 TMP 中的文件将在该过程中持续存在。

实际上,这些文件将持续更长时间,我们说您无法保证可用性的原因是 tmp 不是跨服务器共享的,并且每个作业/进程可以根据云负载在不同的服务器上运行。作为工作的一部分,您还需要确保在完成文件后删除它们。

- 另一位 Heroku 员工

关于ruby-on-rails - Heroku:在没有本地文件系统的情况下为大型动态生成的 Assets 提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com