S3 → S3移行後のアップロード欠落

S3バケット間でアップロードを移行しました。その際、こちらで提案されているヒントと、uploads:recover_from_tombstone および posts:rebake の追加支援に従いました。ほぼすべてが再び機能するようになりましたが、すべてではありません。

私はRuby開発者ではないため、デバッグ能力は限られています。uploads:recover を実行すると、次のような多くの出力が表示されます。

Warning /t/foo/489/5 had an incorrect 4ff3ad05b76e1888161f41fd86da66efc16c290c should be 0b029ef3549e72dd5e3498abc7f979736d279a5e storing in custom field ‘rake uploads:fix_relative_upload_links’ can fix this
Warning /t/bar/498/4 had an incorrect 0649edb23196a8c84a9d71c04147bd8f0c96d0f7 should be f5b4e4bb3eedcd0fb83a06eecc4920f20c5e2bc4 storing in custom field ‘rake uploads:fix_relative_upload_links’ can fix this
Warning /t/bar/498/4 had an incorrect 0649edb23196a8c84a9d71c04147bd8f0c96d0f7 should be f5b4e4bb3eedcd0fb83a06eecc4920f20c5e2bc4 storing in custom field ‘rake uploads:fix_relative_upload_links’ can fix this

これらの警告は、アップロードが壊れている投稿に対応しているように見えるため、かなり有望に聞こえます。しかし、fix_relative_upload_links を実行しても、何も起こらないようです。

rake uploads:fix_relative_upload_links --trace
** Invoke uploads:fix_relative_upload_links (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute uploads:fix_relative_upload_links
skipping missing upload in https://foo.com/t/bar/7/2 <img src="/uploads/default/35/f450f88541e87c52.png" width="198" height="70">
skipping missing upload in https://foo.com/t/bar/7/2 <img src="/uploads/default/36/0b73d33d9df37a66.png" width="120" height="43">

(スキップされた2つのファイルは、古いS3移行前のアップロードだと思います。以前の警告を生成したS3アップロードについては、まったく出力がありません。)

1年前に同様の問題の報告がありましたが、修正を含む同様の報告は見つかりませんでした。

公式にはサポートされていないことを承知していますが、何かヒントがあれば幸いです。

移行から数日後にこの問題に気づきました。すぐに気づいていれば、新しいDB/S3リストアを使用して再移行を試みたでしょうが、最近の投稿を失いたくないため、ここからライブサイトで作業する必要があります。

ありがとうございます。

編集:壊れた upload:// URLを変換して、アップロードテーブルのレコードと比較してみましたが、あまりよくわかりませんでした。

正常に機能する upload:// URLを調べると、有効なURLを持つ uploads テーブルのレコードにマッピングされますが、壊れたURLを調べても…有効なURLを持つレコードにマッピングされます。DBには有効なデータがあり、ファイルはアップロードテーブルで割り当てられたURLのS3に存在するように思われます。ブラウザでS3 URLに問題なくアクセスできるため、なぜプルできないのかわかりません。

「いいね!」 1