[{"data":1,"prerenderedAt":290},["ShallowReactive",2],{"content-/r2-lesson-audio-sync-and-storage-cleanup":3,"all-pages-for-dir":270,"related-/r2-lesson-audio-sync-and-storage-cleanup":271,"og-image-/r2-lesson-audio-sync-and-storage-cleanup":289},{"id":4,"title":5,"body":6,"category":250,"concepts":251,"description":252,"extension":253,"meta":254,"navigation":255,"ogImage":251,"path":256,"project_name":257,"published":258,"publishedAt":259,"seo":260,"source":261,"stem":262,"tags":263,"todo":251,"unpublished":258,"updatedAt":251,"__hash__":269},"pages/2026-10/2026-10-18/r2-lesson-audio-sync-and-storage-cleanup.md","本番で音が鳴らない講座を洗い出してR2へ上げ、R2の容量を10GB未満に整理した記録",{"type":7,"value":8,"toc":236},"minimark",[9,13,18,27,31,34,37,40,43,46,50,53,57,64,67,70,73,76,98,104,108,111,114,117,120,131,134,137,141,152,155,158,162,165,201,204,207,222,225],[10,11,5],"h1",{"id":12},"本番で音が鳴らない講座を洗い出してr2へ上げr2の容量を10gb未満に整理した記録",[14,15,17],"h2",{"id":16},"lecture-06-は本番で鳴っているのか","lecture-06 は本番で鳴っているのか",[19,20,21,22,26],"p",{},"ローカルで ",[23,24,25],"code",{},"/lessons/computer/lecture-06"," を開くと、読み上げが流れる。\n本番では、たぶん鳴っていない。\nそう思って、Claude Code に頼んだ。\nローカルには音声があるのに本番には無いものを全部洗い出し、本番でも聞けるようにしてほしい。\nまずは、どこに不一致があるのかを知りたかった。",[14,28,30],{"id":29},"_6008本の不一致をページが使う分に絞る","6,008本の不一致を、ページが使う分に絞る",[19,32,33],{},"本番の音声は R2 に置いてある。\nClaude Code には、R2 にある音声の一覧を取る方法から探してもらった。\nローカルと突き合わせると、本番に無いファイルは6,008本あった。",[19,35,36],{},"そこから、実際にページが参照しているものだけに絞り込んでもらった。",[19,38,39],{},"公開済みの動画（財務諸表と CF）の音声285本は、すべて本番にそろっていた。\n残ったのは computer 講座である。",[19,41,42],{},"洗い出しの結果、本番で見られるページなのに音が出ないのは、コンピュータのしくみ講座の全18講（lecture-01〜18）だけだった。\n仮ナレーションの MP3 2,842本（186.4 MiB）が、R2 に1本も上がっていなかった。\nほかの不一致は、どれも本番ではまだ出していないものだった。",[19,44,45],{},"lecture-06 だけではなく、講座がまるごと無音だったことになる。\n「y」と返して、2,842本を R2 へ上げてもらった。\n本番のページで音が鳴るところまで確かめてから報告する、という段取りである。",[14,47,49],{"id":48},"アップロードの最中に-r2-の容量を見直す","アップロードの最中に R2 の容量を見直す",[19,51,52],{},"上げている最中に、R2 の容量が気になった。\nほかに削れるものは無かったか、と聞いた。\nClaude Code に全バケットの中身を一覧させ、何がどれだけ場所を取っているかを集計させた。\n前回の計画書にも、削減候補が残っていた。",[14,54,56],{"id":55},"フックのタイムアウトは-pc-の重さのせいではなかった","フックのタイムアウトは PC の重さのせいではなかった",[19,58,59,60,63],{},"このメッセージを送ったとき、セキュリティ確認用のフック（",[23,61,62],{},"security_reminder_hook.py","）が30秒以内に終わらず、出力が捨てられたという知らせが出た。\nメッセージ自体は届いていた。",[19,65,66],{},"Claude Code の最初の見立ては、裏で R2 へのアップロードが8本並列で走っているため、PC が重くなって Python の起動が遅れたのだろう、というものだった。\n続くようならフックの timeout を延ばせば消える、という提案も添えられていた。",[19,68,69],{},"調べ直してもらうと、原因は別にあった。\nMicrosoft Store 版の Python 3.13 が壊れていて、フックがそれを起動しようとして毎回30秒以上待たされていた。",[19,71,72],{},"ストア版の Python 3.13 はアンインストールすることにした。\n最初は Claude Code に頼もうとしたが、途中で、これは自分がやればいいのだと気づいた。\n示された方法のうち1番で、スクリプトを自分で実行した。",[19,74,75],{},"アンインストール後の時間は Claude Code に測ってもらった。\nPython を探す時間は次のように変わった。",[77,78,79,86,92],"ul",{},[80,81,82,85],"li",{},[23,83,84],{},"python3.13","：約50秒から0.1秒へ",[80,87,88,91],{},[23,89,90],{},"python3","：約86秒から0.3秒へ",[80,93,94,97],{},[23,95,96],{},"python","（3.11）：これまでどおり0.2秒",[19,99,100,101,103],{},"残っている ",[23,102,90],{}," は、Windows に最初から入っている「ストアを開くだけ」の小さなスタブである。\nすぐ失敗して次の候補に移るので、問題にならないという。\n次からフックはタイムアウトしないはずで、ファイルを編集するたびに待たされていた分もなくなるはずだ。",[14,105,107],{"id":106},"旧-wordpress-のバケットは消せなかった","旧 WordPress のバケットは消せなかった",[19,109,110],{},"容量の件で片づけたかったのは、旧 WordPress のバケットである。\nDrive と Dropbox の控えと突き合わせてから消す。\nこれには確か計画書があったはずなので、その計画書の進捗を更新しながら進めてほしいと頼んだ。",[19,112,113],{},"返ってきた答えは「消せませんでした」だった。\n旧 WordPress のバケットは、いまも本番で使っているバケットだった。\n退避と削除は止めてもらった。",[14,115,116],{"id":116},"代わりに3つを片づける",[19,118,119],{},"代わりに挙がった3つで進めてもらうことにした。",[77,121,122,125,128],{},[80,123,124],{},"Excel の動画の古い版16本（111.5 MiB）",[80,126,127],{},"書籍の図のバックアップ51件",[80,129,130],{},"クイズの音声2,123本",[19,132,133],{},"古い動画16本と書籍の図のバックアップ51件は、控えを取って中身の一致まで確かめてもらった。\nExcel の動画の古い版は、コードからの参照が0件であることと、控え2か所（作業フォルダと Dropbox の退避フォルダ）の中身が一致することを確かめてから削除してもらった。\n新しい版は、本番で 200 が返る。",[19,135,136],{},"クイズ音声は、控えを取ったうえで変換し、R2 に上書きしてもらった。\n上書きのあとに消す CDN キャッシュの準備も、待ち時間のうちに済ませてもらった。",[14,138,140],{"id":139},"上書きを待つあいだに-lecture-06-が鳴った","上書きを待つあいだに lecture-06 が鳴った",[19,142,143,144,147,148,151],{},"クイズ音声の上書きを走らせている間に、本番の lecture-06 を確かめてもらった。\n読み上げの MP3 が 206 で読み込まれ、",[23,145,146],{},"intro-01"," から ",[23,149,150],{},"intro-02"," へ進んだ。\n本番の lecture-06 でも、音が出るようになった。",[19,153,154],{},"途中で進捗を聞くと、上書きは2,123本中798本まで進んでいて、失敗は0件だった。\n残りはあと20分ほどという見込みである。\n終わったら教えてほしいと伝えて、待った。",[19,156,157],{},"上書きは、2,123本すべてが一致した。\nキャッシュを消してから、本番のクイズページで「▶ 開始」を押して確かめてもらった。\n問題文、正解音、解説の順に進んだ。",[14,159,161],{"id":160},"r2-の合計は968-gb","R2 の合計は9.68 GB",[19,163,164],{},"最後に、R2 の合計を測り直してもらった。",[166,167,168,181],"table",{},[169,170,171],"thead",{},[172,173,174,178],"tr",{},[175,176,177],"th",{},"時点",[175,179,180],{},"R2 の合計",[182,183,184,193],"tbody",{},[172,185,186,190],{},[187,188,189],"td",{},"作業前",[187,191,192],{},"10.11 GB",[172,194,195,198],{},[187,196,197],{},"作業後（computer 講座の音声186 MiB を足した後）",[187,199,200],{},"9.68 GB",[19,202,203],{},"computer 講座の音声を足したうえで、10 GB まで約0.32 GB の余裕が残った。",[14,205,206],{"id":206},"続きは自分の確認から",[19,208,209,210,213,214,217,218,221],{},"進捗は計画書（",[23,211,212],{},"memo/2026-10-14/r2-tts-audio-slimming-plan.md","）に記録してもらった。\n冒頭の ",[23,215,216],{},"next:"," も「明日はご本人の確認から」に書き換わっている。\n明日は、まず自分が確認するところから続きをやりたい。\nそのための引き継ぎプロンプトは、ダウンロードフォルダのテキストファイル（",[23,219,220],{},"handoff-r2-slim-2026-10-19.txt","）に書き出させた。",[14,223,224],{"id":224},"学びメモ",[77,226,227,230,233],{},[80,228,229],{},"本番で鳴らないページを1つずつ探す代わりに、R2 の一覧をローカルと突き合わせ、ページが参照する分に絞った。6,008本の不一致は、computer 講座の2,842本に行き着いた。",[80,231,232],{},"フックのタイムアウトは、最初は並列アップロードの負荷と見立てられたが、実際はストア版 Python 3.13 の故障だった。timeout を延ばす前に、何を待たされているのかを調べてもらったので、原因そのものを取り除けた。",[80,234,235],{},"消すつもりで頼んだ旧 WordPress のバケットは、本番で現役だった。削除の前に止まり、代わりの3つで R2 を10 GB 未満に戻した。",{"title":237,"searchDepth":238,"depth":238,"links":239},"",2,[240,241,242,243,244,245,246,247,248,249],{"id":16,"depth":238,"text":17},{"id":29,"depth":238,"text":30},{"id":48,"depth":238,"text":49},{"id":55,"depth":238,"text":56},{"id":106,"depth":238,"text":107},{"id":116,"depth":238,"text":116},{"id":139,"depth":238,"text":140},{"id":160,"depth":238,"text":161},{"id":206,"depth":238,"text":206},{"id":224,"depth":238,"text":224},"dev",null,"ローカルでは鳴るのに本番で無音だったコンピュータ講座18講の音声2,842本をR2へ上げた。旧WordPressバケットは本番で使用中と分かって削除を止め、代わりに古い動画やクイズ音声を整理してR2合計を9.68GBにした。","md",{},true,"/r2-lesson-audio-sync-and-storage-cleanup","eurekapu-nuxt4",false,"2026-10-18T00:00:00.000Z",{"title":5,"description":252},"make-diary","2026-10/2026-10-18/r2-lesson-audio-sync-and-storage-cleanup",[264,265,266,267,268],"Cloudflare R2","音声","ストレージ整理","Python","Claude Code","64EBvqXve0Ro7-gMC79_EcD4Wiyzb7LtCxHtTfvsJaw",[],[272,275,279,283,286],{"title":273,"path":274,"publishedAt":259},"税効果会計講座の制度を一次資料で確かめ、Pythonの参照モデルで配布用Excelブックを検査した","/tax-effect-course-primary-source-gate-and-workbook",{"title":276,"path":277,"publishedAt":278},"財務諸表ストーリー版の動画プレイヤーを直す：字幕領域の拡張、区切り付き進捗バー、フィードバックの観点化","/fs-story-video-player-feedback","2026-10-15T00:00:00.000Z",{"title":280,"path":281,"publishedAt":282},"会計講座の動画にフィードバックを反映した記録：IB配色は数字だけに、財務諸表講座は縦の画と台本の横並びへ","/accounting-course-scene-feedback-ib-color-fs-layout","2026-10-14T00:00:00.000Z",{"title":284,"path":285,"publishedAt":282},"簿記教材のストーリー版に書籍の図を差し込む。Illustratorの一括書き出し、メモリ不足、Macが見つからない問題","/bookkeeping-story-notes-illustrator-crop",{"title":287,"path":288,"publishedAt":282},"世界のランドマーク996体の3Dビューアと地図の旅ページを作り、公開スイッチで本番を404に留めた","/world-landmarks-3d-travel-map-publish-switch","https://log.eurekapu.com/og/blog/r2-lesson-audio-sync-and-storage-cleanup.png?v=2026-10-18T00%3A00%3A00.000Z&title=%E6%9C%AC%E7%95%AA%E3%81%A7%E9%9F%B3%E3%81%8C%E9%B3%B4%E3%82%89%E3%81%AA%E3%81%84%E8%AC%9B%E5%BA%A7%E3%82%92%E6%B4%97%E3%81%84%E5%87%BA%E3%81%97%E3%81%A6R2%E3%81%B8%E4%B8%8A%E3%81%92%E3%80%81R2%E3%81%AE%E5%AE%B9%E9%87%8F%E3%82%9210GB%E6%9C%AA%E6%BA%80%E3%81%AB%E6%95%B4%E7%90%86%E3%81%97%E3%81%9F%E8%A8%98%E9%8C%B2&author=Kei%20Komatsu&sig=1fbad05db82c3f46",1792550158411]