画像ストレージにまつわるあれこれ
著者は2024年2月13日に以前の記事を改訂し、資金問題で個人ブログを静的ブログに移行した後に直面した静的リソースのストレージ問題について議論している。SM.MS、聚合图床、路过图床、去不图床、有图床、Bilibili画像ホスティング、Github+JSDelivr、NPM+各種NPMミラー、画像キャッシュなどの複数の公開画像ホスティングサービスを評価した。著者は各サービスの長所と短所、適用シナリオを共有し、一部のコード例を提供している。記事では、多吉云(DogeCloud)、缤纷云s4(Bitiful s4)、CloudFlare R2、BackBlazeなどの比較的安価なクラウドプロバイダーにも言及している。著者は画像の消失を防ぐためのマルチバックアップを推奨し、優秀な無料リソースを共有するために記事を更新し続けると述べている。
この記事の最終更新は 1 年 5 か月 前です
記事内には「現在は2024年2月13日」という明確な日付の記載や、GitHubなどのサービスの現在の無料枠、JSDelivrの最近の稼働状況に関する言及が含まれており、時間経過によって情報が不正確になる可能性が高いため。
序文H1#
前回CYFの記事を転載してから、再びファイルストレージについて言及するまでに、もう1年以上が経ちました
うん。現在は2024年2月13日です。記事のバックアップを復元するついでに、この時代遅れの記事を改訂しました。
なぜ突然この話題に触れるのか?実は最大の理由は、個人の動的ブログが資金問題により運営を停止し 苦しい中学生 、以前技術的な問題で放棄した静的ブログに移行したからです。少なくとも現在のGitHub、GitHubPages、Vercelはまだ無料ですが、これは非常に深刻な問題を引き起こしました。私の静的リソースはどこに投げればいいのでしょうか?
画像のストレージと呼び出しは、フロントエンドとバックエンドが分離されたどのブログプログラムでも解決すべき問題です。現在使用しているMix-Spaceには静的ファイルを保存する機能がありますが、バックエンドサーバーの帯域幅とストレージの制限があるため、やはり適切で静的なファイルを保存する方法を探す必要があります。
ネット上で提案されているJSDelivr+GitHubを画像ホスティングとして使うことについて、個人的にはJSDelivrは静的リソースを加速するのには適していると思いますが、過度の乱用は逆に問題を引き起こすと考えています 現在、JSDelivrは完全に死んでいます。乱用する人はちょっと逝ってくれないかな。
JSDelivr had lost their ICP licenseの騒動からしばらく経ち、中国国内でもJSDelivrに正常にアクセスできるようになりましたが、速度は以前ほど速くありません。そのため、CSSやJSなどのファイルの加速に使うなら速度はまだ見込めますが、私のように1枚の画像が約500KBもある場合、全体でJSDelivrを使用するのはあまりお勧めできません。
この記事では、やはりCYF氏のフォーマットに倣って、現在のパブリックな画像ホスティングについて簡単に話したいと思います。
注意:本サイトのほとんどの画像はShiroを通じてリバースプロキシされています。速度はVercelの速度なので、画像の速度をテストするには新しいタブで開いてください。
パブリック画像ホスティングH1#
SM.MSH2#
画像ホスティングについて語る記事で避けられないのがSM.MSです。本当に有名すぎます()
しかし、私の評価は以下の通りです:
アップロード速度が遅い、アクセス速度が遅い

元の画像サイズ:518KB
この画像ホスティングは完全に死んだと言えます。なぜ画像が読み込めるのか聞かないでください。これは画像リバースプロキシを経由しています()
おっと、また復活しましたね。しかし、画像の直接リンクにそのままアクセスすると画像ページにリダイレクトされます(
どうも安定していないようなので、個人的にはあまりお勧めしません。
聚合图床H2#
この画像ホスティングのアクセス速度はかなり見込みがあります。私が一番早く使い始めた画像ホスティングでもありますが、画像にアクセスする際にリダイレクトを経由する必要があるため、個人的にはあまり好きではありません。

元の画像サイズ:1.77MB
路过图床H2#
路过图床は、TOS(利用規約)で**「漫画(ACG/二次元/アニメ・ゲームなどを含む)」**は違反コンテンツであると明確に規定しています。

元の画像サイズ:4.96MB
去不图床H2#
杜先生が運営している画像ホスティングです。無料プランはなく、有料です。多吉云(DogeCloud)の統合CDNを使用しています。
私は画像を載せません。レビューするための資金がありません(
有图床H2#
zkeq氏が運営している画像ホスティングです。圧縮が少しきつい感じがします。多吉云(DogeCloud)の統合CDNを使用しています。

元の画像サイズ:88.1KB(画像が圧縮されて消えそうです!元の画像は143KB)
技術力不要の無料利用H1#
bilibiliH2#

元の画像サイズ:405KB
Bilibiliの画像ホスティングは、速度が速くアップロードも速いですが、欠点は直リンク防止(ホットリンクプロテクション)があることです。
好みに分かれますが、読み込み速度はどれも見込みがあります。
SW(Service Worker)と組み合わせて使用できます。一部の特別なBilibiliリンクには直リンク防止がないようです。
// 对数组内所有地址进行请求,返回第一个成功的请求结果并打断其他请求
const 并发请求 = async (urls, url) => {
let controller = new AbortController()
const PauseProgress = async (res) => {
return new Response(await res.arrayBuffer(), {
status: res.status,
headers: res.headers,
})
}
if (!Promise.any) {
Promise.any = function (promises) {
return new Promise((resolve, reject) => {
promises = Array.isArray(promises) ? promises : []
let len = promises.length
let errs = []
if (len === 0)
return reject(new AggregateError('All promises were rejected'))
promises.forEach((promise) => {
promise.then(
(value) => {
resolve(value)
},
(err) => {
len--
errs.push(err)
if (len === 0) {
reject(new AggregateError(errs))
}
},
)
})
})
}
}
return Promise.any(
urls.map((urls) => {
return new Promise((resolve, reject) => {
fetch(urls, {
signal: controller.signal,
})
.then(PauseProgress)
.then((res) => {
if (res.status == 200 || res.status == 304 || res.status == 404) {
controller.abort()
resolve(res)
} else {
reject(res)
}
})
.catch((e) => reject(e))
})
}),
)
}
// 网络请求处理函数
if (req.url.includes('hdslb.com')) {
// 获取路径
const path = req.url.replace(/(https|http)?:\/\/(.[^/]+)/, '')
const 站点镜像源 = [
`https://i0.hdslb.com`,
`https://i1.hdslb.com/`,
`https://i2.hdslb.com/`,
`https://s1.hdslb.com/`,
`https://s2.hdslb.com`,
`https://s3.hdslb.com/`,
]
for (var i in 站点镜像源) {
站点镜像源[i] += path
}
return 并发请求(站点镜像源)
}
おじさん(Bilibiliの社長の愛称)はお金持ち
PicGoと組み合わせて使用でき、既存のプラグインがあります。
Github+JSDelivrH2#
ネット上のチュートリアルはすでに氾濫しているので、言うまでもありません。
羊毛は羊から生えてきます。一匹の羊に狙いを定めて羊毛をむしり取りすぎると、羊が死んでしまい、むしり取れる良い羊がいなくなってしまいます(訳注:無料サービスを乱用しすぎるとサービスが終了するという意味)
どうも、すでにむしり取られて死にました。
NPM+各種NPMミラーH2#
CYF氏が詳細なチュートリアルを書いています:記事を見る
私からはあまり多くは語りません。
とにかく、私のブログの画像ソースはb2バケットとnpmを行ったり来たりしています

現在はnpmmirror.comのアンパックサービスも利用でき、速度もまあまあです。
ある特別な理由により、このサービスはキャンセルされました。
画像キャッシュH2#
以前しばらくの間は、これを使って画像の問題を解決していました。個人的にはimages.weserv.nlが提供するサービスが好きです。このプロバイダーは非常に豊富な画像の後処理方法を提供しています。

元の画像サイズ:284KB
Alist/Cloudreve+各種オンラインストレージH2#
少し変ですが使えます。自分のサーバーが必要です(
ここでは1つの解決策のみを提供します。
比較的安価なクラウドプロバイダーH1#
多吉云H2#
多吉云の無料プランは10GBまで無料で、10GBを超えた部分は1GBあたり1日0.003人民元です。
ただし、サードパーティのアップロードをサポートする標準版は、10GBの無料プランをサポートしていません。
ついでに愚痴を言わせてもらうと、多吉云のオブジェクトストレージのアップロードは本当に面倒くさいです。プレビュー画像は載せません。画像の読み込み速度は去不图床や有图床を参考にしてください。
おそらくリクエスト数はカウントされないはずです。
缤纷云s4H2#
2024年11月24日のコメントに基づく改訂:
無料トラフィックは、初期テストの100GiBから50GiBに削減されました。
無料バケットのアウトバウンドトラフィックは20GBから10GBに削減されました。
無料バケットのリクエスト回数は依然として10万回です。
無料のCDNトラフィックは10GBに削減されました。
注意が必要なのは、S4 请求费(S4リクエスト料金)と S4 回源请求费(S4オリジンフェッチリクエスト料金)の無料枠が、それぞれ独立して月10万回であることです。
詳細はストレージ料金 - 缤纷云ドキュメントを参照してください。
CloudFlare R2H2#
現在、ブログ管理者はCloudFlare R2のプランを使用しています。
速度の詳細は下の画像をご覧ください。

下り帯域幅はカウントされず、毎月1000万回のクラスB操作(つまりダウンロード操作。Cloudflare R2のキャッシュがヒット(cache hit)した後に画像にアクセスする場合も、クラスB操作としてカウントされます)が無料です。

詳細はPricing | Cloudflare R2 docsを参照してください。
BackBlazebH2#
私が転載したCYFan氏の無料利用!10GB通信料無料の海外BackBlazeオブジェクトストレージ【CDN適用可能】を見てみてください。
おわりにH1#
いずれにせよ、データはかけがえのないものです。画像が失われないように、マルチエンドでのバックアップを行うことをお勧めします。
実際、画像ホスティングを利用しているのは私たちのようなブログだけではありません。多くのコンテンツクリエイターやデベロッパーも、画像の保存問題を解決するために画像ホスティングを必要としています。
高速かつ無料のストレージ手段として、画像ホスティングは間違いなく非常に便利です。
覚えておいてください。無料サービスを利用する場合でも、合理性を考慮し、BAN(アカウント停止)や速度制限を避けるべきです。結局のところ、ほとんどの無料画像ホスティングプロバイダーは、利益が出ない状況では限られたストレージと帯域幅しかサポートできないからです。
この記事は、また無料で使える優秀なサービスを見つけたら更新します()
夜も更けました。良い夢が見られますように。
缤纷云s4计费标准和免费额度已经更新啦
https://docs.bitiful.com/prices/detail/transfer-prices