Migrate_to_s3 失败

正在为“default”迁移上传到 S3…
正在将文件上传到 S3…

  • 列出本地文件
    find: ‘uploads/default/original’: No such file or directory
    =\u003e 0 个文件
  • 列出 S3 文件
    … =\u003e 81070 个文件
  • 同步文件到 S3

正在更新数据库中的 URL…
正在删除旧的优化图像…
正在将所有包含灯箱的帖子标记为重新烘焙…
已标记 54453 篇帖子进行重新烘焙
rake 中止!
FileStore::ToS3MigrationError: 53 篇帖子未重新映射到新的 S3 上传 URL。db ‘default’ 的 S3 迁移失败。
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in raise_or_log' /var/www/discourse/lib/file_store/to_s3_migration.rb:87:in migration_successful?’
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in migrate_to_s3' /var/www/discourse/lib/file_store/to_s3_migration.rb:66:in migrate’
/var/www/discourse/lib/tasks/uploads.rake:123:in migrate_to_s3' /var/www/discourse/lib/tasks/uploads.rake:102:in block in migrate_to_s3_all_sites’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in with_connection' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:90:in each_connection’
/var/www/discourse/lib/tasks/uploads.rake:100:in migrate_to_s3_all_sites' /var/www/discourse/lib/tasks/uploads.rake:96:in block in ’
/usr/local/bin/bundle:25:in load' /usr/local/bin/bundle:25:in
任务:TOP =\u003e uploads:migrate_to_s3
(通过运行任务并添加 --trace 来查看完整跟踪)

是的,您可能已经在这里看到了讨论:

是的,我刚读了这篇帖子。我不使用卷,所以我继续将 discourse cdn url 设置为 = “”,但我仍然收到错误。
我找不到如何修改 to_s3_migration.rb,正如 @Falco 所建议的那样。

从您之前的帖子来看,错误消息中第 85 行的计数是值得关注的。@Falco 建议编辑脚本,将该计数增加以忽略一定数量的失败。

最简单的方法是进入容器并使用 sed 对特定行进行就地替换。

cd /var/discourse
./launcher enter app
sed -i '85s/0/100/' lib/file_store/to_s3_migration.rb

之后再次运行 rake 任务,它将忽略多达 100 个“帖子未重新映射到新的 S3 上传 URL”错误。下次重建时,更改将消失。

对于原始帖子中的错误消息,第 77 行是 @Falco 引用的那一行。只需在 sed 命令中替换行号:

sed -i '77s/0/100/' lib/file_store/to_s3_migration.rb
7 个赞

您可以通过在镜像内使用 apt install vim 来安装 vim,然后随时使用它。

4 个赞

完成!太棒了!谢谢!!

3 个赞