gpt4 book ai didi

ruby-on-rails - 神社的新手。缓存有什么用?

转载 作者:行者123 更新时间:2023-12-02 16:40:45 28 4
gpt4 key购买 nike

我目前正在使用 Shrine 将文件上传到 DigitalOcean(通过 s3 sdk)。它工作得很好,很完美。但是,在指南中有一个存储选项,用于制作上传的临时副本,由“缓存”前缀指定。

这个缓存是如何使用的?或者,换句话说,它提供了哪些功能?

由于我完全不知道它的用途,目前我所看到的只是我在空间(存储桶)资源中上传的副本。这些文件曾经被处理过吗?

最后,如果缓存文件用于数据检索目的,那么制作本地缓存而不是将其发送到 S3 资源是否有意义?

如果所有这些都是常识,我深表歉意,因为我急于实现它,所以我似乎不太清楚。

最佳答案

Shrine 的临时存储主要用于防止孤立文件(未附加到任何记录的文件)进入您的主存储。如果出现验证错误,或者如果用户决定在文件异步上传到存储后不保存表单,上传的文件可能不会最终附加。

由于 Shrine 的上传文件默认情况下没有数据库记录支持(与 Active Storage 一样),因此临时存储还提供了一种安全措施,可以防止用户劫持其他用户的文件。如果只使用主存储,攻击者可以从另一个文件的URL中猜测上传的文件ID,并在创建记录时分配到他们的表单中。之后他们可以删除记录,属于其他用户的文件将被删除。

Shrine 建议使用云存储作为临时存储,以便可以直接从浏览器上传到云存储,而且如果您将应用程序托管在多台服务器上,磁盘存储将不起作用,因为只有一台服务器可以访问到保存的文件。请注意,如果需要,您仍然可以使用磁盘进行临时存储,只需更改 :cache 声明即可。

关于ruby-on-rails - 神社的新手。缓存有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61729741/

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