哦,好消息。在研究如何查找上传记录时,我发现了这篇帖子,它展示了如何将 base62 字符串转换为 sha1 哈希。
帖子中提到,那些只显示 transparent.png 的图片已被“tombstoned”(标记为废弃)。我不太确定这具体意味着什么,但我推测是某个进程在夜间运行,当时这些图片已损坏,于是将它们标记为未使用。我成功运行了以下命令:
rake uploads:recover_from_tombstone
看起来我所有嵌入的图片都已恢复,现在都指向我的 S3 CDN 了!
顺便提一下,以下是我如何从 yTDVQSa4wbIeLGEZvE7muXe8sAJ 这个字符串开始找到对应的 Upload 记录的:
[14] pry(main)> Base62.decode("yTDVQSa4wbIeLGEZvE7muXe8sAJ").to_s(16)
=> "f49428d6af35d7e0414408ccb65e7316f5003215"
[15] pry(main)> Upload.where( "original_filename ilike '%f49428d6af35d7e0414408ccb65e7316f5003215%'" )
=> [#<Upload:0x000056313aa91fe8
id: 899,
user_id: 549,
original_filename: "f49428d6af35d7e0414408ccb65e7316f5003215.png",
filesize: 25514,
width: 1169,
height: 984,
url: "//ortus-discourse-uploads.s3.dualstack.us-west-2.amazonaws.com/original/1X/f49428d6af35d7e0414408ccb65e7316f5003215.png",
created_at: Tue, 12 Jan 2021 23:01:35 UTC +00:00,
updated_at: Tue, 12 Jan 2021 23:01:36 UTC +00:00,
sha1: "f49428d6af35d7e0414408ccb65e7316f5003215",
origin: nil,
retain_hours: nil,
extension: "png",
thumbnail_width: 594,
thumbnail_height: 500,
etag: "6977f35ddbf39a4399dc76f92a5079d4",
secure: false,
access_control_post_id: nil,
original_sha1: nil,
animated: nil,
verification_status: 1>]
再次感谢你的帮助,@Falco!我是 Discourse 的新手,但你表现得非常耐心且乐于助人 ![]()