Googleドライブの共有画像が403エラーで読み込めない時の対策
はじめに
先日、Googleドライブで一般公開している画像ファイルが、
直ダウンロードURLで取得できなくなる問題に遭遇しました。
調べたところGoogoleのIssueTrackerに登録されている、以下不具合の影響でした。
この問題への対処方法をご紹介します。
Googleドライブの共有リンク
以下記事に記載の手順で、Googleドライブのファイルを共有できます。
共有リンクを取得すると、通常以下のようなURLになります。
https://drive.google.com/****/d/{ファイルID}/view?usp=drive_link
このURLにアクセスすると、ファイル内容のプレビュー表示、
印刷ボタン、ダウンロードボタンが配置された共有表示用画面が開きます。
共有表示用の画面は不要で、ファイルを直接ダウンロードさせたい場合は、
以下URLに変えることでファイルへの直リンクになります。
https://drive.google.com/uc?export=download&id={ファイルID}
403(Forbidden)エラー
リンクを知っている全員に閲覧許可させた直ダウンロードURLは、
Webサイトに表示する画像のパスに利用しても参照できていたのですが、
先日から403エラーが発生し、読み込めなくなってたのです。
ブラウザの開発者ツールでエラーメッセージを確認すると、strict-origin-when-cross-origin
。
ドメインを跨いだ参照によるCORS(Cross-Origin Resource Sharing)が原因と分かり、
IssueTrackerに登録されている問題を見つけました。
Webサイトにiframeなどで埋め込んでいて、エラーに遭遇しているユーザーが多いようです。
対策
画像ファイルの直ダウンロードURLを、以下のように書き換えます。
https://lh3.googleusercontent.com/d/{ファイルID}
これで画像ファイルは、表示されるようになりました!
しかしこれはGoogleフォト用URLを使った対策のため、
音声やドキュメントファイルには利用できないです💥
おわりに
不具合の対応ステータスはAssigned(割り当て済み)
になっていますが、
解消時期は不明なので、影響が大きい場合は他サービスへの移行を検討しても良いかも。
共有リンクはリスクも考慮して、ご利用は計画的に。。
Discussion