久しぶりの技術ブログの更新だ。今回はタイトルにある通り
''GitHubのissueをストレージ(assets)代わりにしている俺は異端かな??''
失礼。
''GitHubのissueをストレージ(assets)としても扱えるんじゃないか??''
ということを皆様に提案したい。 ここに関しては深く調べたことはないので、もしかしたらアウトな使い方の可能性もあるので自己責任でよろしくお願いしたい。
それでは各セクションを綴ろう。
それでは早速見ていこう。
GitHubのissueをassets代わりにしている(現在進行形)
※このセクションは私のヨタ話がメインなので詳細を知りたい方は次のセクションからご覧いただきたい。
私は今このポレゴンフーズの特設サイトをGitHubでソースコードを管理している。Next.jsで本ブログは作成しているため、必要な画像コンテンツは基本的に「public」ディレクトリで管理することになるだろう。
しかし、Vercelでデプロイを繰り返していると、どうやらpublicにある画像の読み込みに影響をきたす可能性があるという話を聞いたことがある。
それを懸念視した私は閃いた。
''GitHubのissueに画像を格納してパスとして読み込ませれば問題解決じゃないか''
そう閃いて私は今でもそれを行なっている。
ブログ記事で使用している画像も大抵は自身のGitHub issueに格納されている画像を使用している。
例を挙げてみよう。
Examples🤳
URLを見ていただくとわかるだろう。 紛れもなくGitHubから上がっている画像であることがわかるだろう。 これが便利で私は個人的にめちゃくちゃ乱用している。
やり方のロジック
やり方は至って簡単。
- GitHubリポジトリを作成
- issueを作成
- 画像をissueへあげる(ドラッグ&ドロップまたは普通にアップロード)
- アップロードした画像のパスをコピー
- 画像表示させたいimgタグのsrcにパスを記述
これだけだ。
しかもアップロードした画像は大きなリサイズが入ることがなく、基本的にそのままの品質で画像を使い回すことができる。
しかし、画像のデータが大きいものだとブラウザでの読み込みに時間がかかるので注意が必要だ。
ここで皆様はこう思うだろう。
''そんなことして大丈夫なの??''
無論知らん。
多分大丈夫だと思うがされる際は自己責任だ。
もし知見を持たれている方がいれば、是非コメント欄で教えていただきたい。
次のセクションでは懸念点というか制約について綴っていこう。
懸念点
公式のドキュメントを元に綴っていく。
制約⛓
- 画像とGIF用に10MB
- 無料のGitHubプランでユーザーまたは組織が所有するリポジトリにアップロードされた動画の場合は10MB
- 有料のGitHubプランでユーザーまたは組織が所有するリポジトリにアップロードされた動画の場合は100MB
- 他のすべてのファイルの場合は25MB
対応ファイル🗂
- PNG(.png)
- GIF(.gif)
- JPEG(.jpg)
- ログファイル (.log)
- Microsoft Word (.docx)、Powerpoint (.pptx)、および Excel (.xlsx) 文書
- テキストファイル (.txt)
- PDF(.pdf)
- ZIP(.zip、.gz)
- ビデオ(.mp4, .mov)
制約を見る限り問題なさそうだが、この使い方は正しいのか否か... 恐らくリポジトリをクローズにしない限りはパスも生き続けるので問題ないとは思うが...
追加で一点注意したいことがある。 それは
''issueをprivateにしたとしても直接画像のパスを指定すると部外者でも見れること''
ここは注意していただきたい。
あくまでも載せる画像は外部から見ても差し当たり無いものを挙げるといいだろう。
最後に
いかがだっただろうか?
GitHubは単純に画像フォルダとしても扱うことができるので、非エンジニアの方でも気軽にweb上に画像をアップロードしちゃいましょう!
一眼で撮影した写真を全てアップロードするっていうのもなかなか乙なんじゃ無いかとおもうゾイ!
画像はNext.jsカンファレンスのチケット。かっこよくて保存したやし。
※使い方間違っていたらコメントで指摘してください