GoogleドライブからCloudflare R2への画像移行

これまでアプリの画像はGoogleドライブに保存し、アプリから参照・保存していました。しかし、Googleドライブはある日突然仕様変更が行われることがあり、それによってURLが使用不能になるリスクを抱えていました。


今回の不具合について その2

50本のアプリが一斉に画像を表示できなくなる事態を避けるため、信頼性の高いCloudflare R2への移行を決断しました。

■Cloudflare R2について
Cloudflare R2はS3互換のオブジェクトストレージであり、クラウド上のファイル置き場のようなサービスです。
無料枠(2024年時点)の内容は以下の通りです。
・ストレージ:10GB/月
・ダウンロード(Egress):永久無料
・Class A操作(アップロード等):1,000,000回/月
ドメイン管理会社を「お名前.com」から「Cloudflare」へ移行したことで、この便利なサービスを(無料枠で)活用できる環境が整いました。

■移行の方針:Unityコードの修正は不要
アプリのコードには、GoogleドライブのURLを直リンクに変換する ConvertToDriveDirectUrl() メソッドを実装していました。このメソッドは、R2のURL(httpから始まる通常のURL)が渡された場合はそのまま値を返す仕様になっていたため、アプリ側のコード修正や再ビルドを行う必要はありません。

■移行手順

rcloneをMacにインストール

rcloneを用いてGoogleドライブからR2へ直接同期(PCを経由しますが、手動のダウンロードは不要)

画像URLを新しいR2のURLに置換

■GAS(Google Apps Script)の実装ポイント
・5分間の実行制限対策として、トリガーによる自動再実行を実装
・スクリプトプロパティを活用し、認証情報を安全に管理
・変換ミスを防ぐため、エラーログを専用シートに記録

■今後の運用フロー

新しい画像をR2にアップロード(ダッシュボードまたはrcloneを使用)

スプレッドシートで作成したカスタム関数を実行

空白のセルに自動的にR2のURLが補完される

■まとめ
・Unityコード修正:不要
・アプリ再ビルド:不要
・ランニングコスト:ほぼ無料(10GB以内)
・移行リスク:極めて低い(既存ユーザーへの影響なし)

Googleドライブは手軽ですが、仕様変更に振り回されるリスクがあります。Cloudflare R2へ移行したことで、50本のアプリにおける画像配信基盤を強固にすることができました。使用したファイル容量も600MB程度でしたので10GBまだ十分に余裕があります。個人開発者にとって、この安心感は非常に大きなメリットです。