はじめに
GoogleDriveの画像差し込みについて、現在公開されている記事の多くでは以下の手順での埋め込み方になっています。
共有リンクを取得
https://drive.google.com/open?id={ファイルID}
https://drive.google.com/file/d/{ファイルID}/view?usp=sharing
↓
公開URL化
http://drive.google.com/uc?export=view&id={ファイルID}
しかし、昨年10月ころのアップデート
の影響か、今までの手法では各種外部サイトにGoogleドライブからの直共有ができなくなっています。
(画像が 破損表示になります)
そして、調べていたところ以下の形であれば解決することが判明したので共有します。
手段
ファイルIDの取得方法は変わりません。
URLを以下のようにします。
https://lh3.google.com/u/0/d/{ファイルID}=w{幅px}-h{高さpx}-iv1
このURLはGoogleドライブで画像をプレビューしたときに、対象を示すHTMLソースでimg srcで表示されるものと同じです。
既存の方法だった
http://drive.google.com/uc?export=view&id={ファイルID}
では、表示サイズを指定することはできませんでしたが、HTMLにはなじみの深いパラメータであるWidthとHeightが含まれているため、自由にサイズを制限することが可能になっています。
なお、Markdown対応のページでは今までと変わらず
![Alt name](URL)
の形式で表示できるため、URLの部分を今回ご説明したURLに変えるだけで済みます。
注意事項
よくある失敗としては、アクセス権です。
この機能は、あくまでアクセスする側が対象の画像ファイルにアクセス権がある必要があります。
つまり、外部向けなら「リンクを知っている人全員」に共有する必要があります。
GoogleWorkspaceを利用している組織内であれば、組織内の共有事情に合わせて、公開パターンを作っておくのも一つの手かもしれません。
余談
詳しく調べてはいませんが、URLの形式的に
lh3.google.com
はGoogle Photosで使われる外部共有リンクの
lh3.googleusercontent.com
とほぼ同じ扱いになっているかと思います。(DBサーバーが同じではないか)
その為、こちらのサイト
にあるような
- s0=原寸大表示
- c=正方形表示
- d=ファイルダウンロード
のパラメータも利用可能かと思います。