Bathinda
(Bathinda Helper)
2019 年11 月 22 日 12:34
1
虽然我新上传的文件在 Amazon S3 上上传非常顺利,但以下命令却无法将旧文件从本地迁移到 S3:
DISCOURSE_S3_BUCKET="bucketname" DISCOURSE_S3_REGION="ap-south-1" DISCOURSE_S3_ACCESS_KEY_ID="AKIchangedabitUNM2" DISCOURSE_S3_SECRET_ACCESS_KEY="rX6Pf3C_changedabit_YKKtdVrnbw6B" DISCOURSE_S3_CDN_URL="https://bucketname.s3.ap-south-1.amazonaws.com" rake uploads:migrate_to_s3
而在 15 天前,该命令运行得非常完美。
今天它报出了以下错误:
正在检查默认数据库是否已迁移...
14 个上传中有 7 个未迁移到 S3。数据库 'default' 的 S3 迁移失败。
1 个帖子未重新映射到新的 S3 上传 URL。数据库 'default' 的 S3 迁移失败。
正在查找 'default' 上缺失的上传
0 个帖子上传缺失。
没有帖子需要重新烘焙
正在将 'default' 的上传迁移到 S3...
部分上传未迁移到新方案。请在 Rails 控制台中运行以下命令:
SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)
我还在 Rails 控制台中执行了上述两条命令,但它们似乎没有任何效果:
SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)
注意:我的上传配置为存储在桶 bucketname/uploads 的子文件夹中。
它返回了什么错误吗?我在 uploads:migrate_to_s3 rake 任务的代码中没有看到任何近期的重大变更。
pfaffman
(Jay Pfaffman)
2019 年11 月 22 日 20:01
4
我遇到过类似的问题。问题出在上传路径与测试期望的路径不匹配(例如,某个路径中缺少 ‘default’)。
我采取的做法是(用比较笼统且可能不太有帮助的说法)查看搜索是如何定位那些它认为有问题的上传文件的,然后进行修复。
Bathinda
(Bathinda Helper)
2019 年11 月 23 日 06:38
5
我碰巧偶然解决了这个问题,甚至到现在我都不确定它是怎么被解决的。
我多次修改了命令,主要是在命令和 Discourse 设置中的 CDN URL 字段里添加或移除“dualstack”这个词:https://bxyzbucket1.s3.dualstack.ap-south-1.amazonaws.com。但似乎仍然不起作用。然后,我随机地再次在 Rails 控制台中输入了两次相同的命令(如原帖所述)。
在这段时间里,我随机做了一步:在命令中的存储桶名称后添加了“/uploads”。
然后,“随机地”(我还需要另一个表示随机的词 :)),我成功了。
所以,我无法确定谁是这次问题解决中的功臣。
无论如何,感谢大家的倾听。
Bathinda
(Bathinda Helper)
2019 年11 月 23 日 07:04
6
无论之前出现或显示了什么错误,我已经在原始帖子中包含了。但我同意,该错误/消息对诊断问题帮助不大。
唉,今天我又想,既然我无法理解迁移中的问题,我就在本地创建了一个上传。然后尝试使用以下命令将其再次转移到 S3:
DISCOURSE_S3_BUCKET="bxyzbucket1/uploads" DISCOURSE_S3_REGION="ap-south-1" DISCOURSE_S3_ACCESS_KEY_ID="AKIAchangedBRF" DISCOURSE_S3_SECRET_ACCESS_KEY="H0P6Oo8changed1AuLkRDCQK8" DISCOURSE_S3_CDN_URL="https://bxyzbucket1.s3.ap-south-1.amazonaws.com/uploads" rake uploads:migrate_to_s3
虽然它成功将 1 个新上传转移到了 S3,但出现了以下错误:
1 of 14 uploads are not migrated to S3. S3 migration failed for db 'default'.
1 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.
这个错误意味着什么?如果有成千上万张图片需要从“本地 >> S3”转移,这会不会带来问题?@vinothkannans
请在 Rails 控制台中运行以下命令,并将输出结果贴在这里:
Upload.by_users.where("url NOT LIKE '//%' AND url NOT LIKE '#{GlobalSetting.relative_url_root}/uploads/default/original/_X/%'")
Bathinda
(Bathinda Helper)
2019 年12 月 20 日 12:29
8
抱歉,我有一段时间没有处理这个操作了。
我正在运行您发送的 Rails 命令,但没有输出:
我仍然收到错误:“S3 迁移失败,数据库 ‘default’”。
尽管帖子上传的图片在我的存储桶和网站上显示正常,但网站徽标等(位于“管理设置 > 品牌”下)却缺失了,我甚至无法用新的徽标进行更新。它们只是保持空白。
我还运行了(没有报错):rake posts:rebake_uncooked_posts 和 rake posts:rebake
Bathinda
(Bathinda Helper)
2021 年5 月 11 日 10:47
10
@vinothkannans 即使过了一年,当我因某种原因重复该过程时,仍然会出现同样的错误。