活动存储/清理文件 url

active storage / clean files url

围绕同一个问题的多个问题,主动存储returns文件的方式urls

现在使用默认设置,以下(云或本地),returns 不知何故如下:

_domain/_path/_superlong_hash/_original_filename._ext

给定回形针或许多其他现有的 gem,_path/_superlong_hash/_original_filename._ext 部分即将被定制,最终可能会干净地 url 任何文件

意思是:

要使其成为单行文件,如何自定义文件 urls?

我在这里和那里看到人们最终创建自定义控制器来提供具有体面 urls 的文件,但我们承认这是不行的(恕我直言)

我希望 ActiveStorage 很快证明我是错误的,但是在撰写 Rails 5.2 时,直接的答案似乎是您必须使用 'no go' 选项,破解您自己的选项控制器在一起并大量修补 ActiveStorage 以公开文件。

有关代理,请参阅:

https://github.com/rails/rails/issues/31419

https://github.com/rails/rails/pull/30465

  • 尤其是 georgeclaghorn 的回答很有趣

重命名文件:

@user.avatar.blob.update(filename: 'NewFilename.jpg')

操纵 _superlong_hash / url

这个问题我没有好的答案。尽管 ActiveStorage 使上传文件变得异常容易(并且在某种程度上易于操作),但它将 Rails 固执己见的软件哲学带到了边缘,这使得通过抽象方法绕过它的晦涩难懂到 url 生成非常困难。 ActiveStorage 不提供内置方法来执行基本操作,例如生成文件和变体后的永久或直接链接。 File/image 缓存和漂亮的 url 因此目前似乎无法使用 ActiveStorage 开箱即用。