pfaffman
(Jay Pfaffman)
1
编辑:我将此问题重新归类为缺陷,以便让比我更懂这方面的人来查看。
许多上传文件的扩展名被标记为“unknown”。这意味着无法生成缩略图。我认为这是在将备份迁移到新站点并随后需要重新生成缩略图时发生的。
我认为,当你尝试生成缩略图但扩展名为“unknown”时,应该替换该扩展名,类似如下操作:
upload.extension = upload.original_filename.split('.').last
如果能在某个地方实现这一点,我本不必在这上面花费4个小时。
等等。这看起来就是问题所在。为什么要返回 false,而不是从文件名中获取扩展名?
以下是详细情况。
我通过备份和还原的方式,将站点从 /community 迁移到了 community.example.com。我使用以下命令修复了上传文件:
RAILS_ENV=production bundle exec script/discourse remap '/community/uploads' '/uploads'
但头像仍然显示为“灰人”。
当我查看 user.user_avatar.custom_upload.url 并将该 URL 粘贴到浏览器中时,可以正常显示所需的头像。看来我需要“重新生成”用户数据。
我曾以为运行以下命令或许能解决问题:
rake avatars:refresh
或者
rake avatars:clean
但都没有效果。
我遗漏了什么?
1 个赞
IAmGav
(Gavin Perch)
2
在 Sidekiq 中有一个触发器用于创建缺失的头像。
这需要一些时间,但如果我没记错的话,这应该会有所帮助。
2 个赞
pfaffman
(Jay Pfaffman)
3
不错!那个调用的是 User.refresh_avatar,但遗憾的是
user=User.find_by_username('broken_avatar_guy')
user.refresh_avatar
也无法解决这个问题。
2 个赞
pfaffman
(Jay Pfaffman)
4
这是一个线索:
ActionController::RoutingError (没有匹配的路由 [GET] "/user_avatar/community.example.com/broken_user")
1 个赞
pfaffman
(Jay Pfaffman)
6
我不这么认为。
user.user_avatar.custom_upload 拥有正确的 URL,但 https://community.example.com/user_avatar/community.example.com/bad_user/25/321_2.png 缺失了头像图片。我需要找到重建这些头像缩略图的方法。
IAmGav
(Gavin Perch)
7
我在代码中看到用户登录时有一个 force_avatar_update。
pfaffman
(Jay Pfaffman)
9
一定出了什么问题:
user = User.find_by_username('Tuomo')
upload_id = user.user_avatar.custom_upload.id
upload = Upload.find(upload_id)
Discourse.avatar_sizes.each do |size|
OptimizedImage.create_for(upload, size, size)
end
OptimizedImage.where(upload_id: upload_id)
我得到的结果是没有优化后的图片。
broken_uploads = Upload.where(extension: "unknown")
broken_uploads.each do |upload|
upload.extension = upload.original_filename.split('.').last
upload.save
end
这样就能修复。
然后我只需要生成新的缩略图,如下所示:
has_upload = UserAvatar.where("custom_upload_id > 0")
has_upload.each do |user_avatar|
Jobs.enqueue(:create_avatar_thumbnails, {upload_id: user_avatar.custom_upload_id})
end
2 个赞
pfaffman
(Jay Pfaffman)
10
我认为这是一个真正的 bug,并且 Jeff
了,但它没有得到任何关注。
是我疯了还是这里有什么东西坏了?
2 个赞
我通过备份和还原将一个站点从 /community 迁移到了 community.example.com
我猜我们还没有遇到过这种情况,因为你在这里抱怨的是还原的残留物,对吗?也许是这个备份和还原特有的?
1 个赞