【发布时间】:2019-02-19 11:52:46
【问题描述】:
我的应用程序(本地)在尝试附加文件时会引发 ActiveStorage::IntegrityError 错误。我怎样才能摆脱这个错误?
我只有一个has_one_attached,但我不知道这个错误是怎么造成的。
# model
has_one_attached :it_file
Tempfile.open do |temp_file|
# ...
it_file.attach(io: temp_file, filename: 'filename.csv', content_type: 'text/csv')
end
# storage.yml
local:
service: Disk
root: <%= Rails.root.join("storage") %>
编辑:它可能与删除 storage/ 目录有关(它发生在我删除它之后)或者它可能是因为它发生在工作中(完整错误是 Error performing ActivityJob (Job ID: .. ) from Async( .. ) in .. ms: ActiveStorage::IntegrityError (ActiveStorage::IntegrityError)
这不会将文件添加到storage/ 文件夹,但是当我尝试附加它们时它会在其下生成文件夹。
【问题讨论】:
-
它是
Tempfile。当我在那里尝试temp_file.rewind时,没有更多错误。 -
我的同事在他的 Docker 环境中遇到了同样的问题。所有其他同事都没有这个问题。 ActiveStorage::IntegrityError 在恢复文件损坏时引发(校验和与恢复的文件不匹配)......我仍在我的环境中调试这个为什么会发生这种情况,只是在这里发布一些注释;)
-
@equivalent8 关于为什么会发生这种情况的更多想法。我已经为此工作了一段时间。我的问题似乎也与 Docker 有关。
-
@equivalent8 你解决过这个问题吗?我在 docker 环境中遇到了完全相同的问题,而且我是唯一一个得到它的人。
标签: rails-activestorage ruby-on-rails-5.2