之前圖床都是用 imgur ,但是最近因為客戶違規,導致我的 API 或是 IP 被擋住
這時候客戶基本上想要換一間圖床,所以簡單做一下功課,基本上不知道問誰就問了一下 GPT
之後就整理了一下幾家,今天就先分享 Cloudinary
1. Cloudiary - 是一個基於雲端的媒體管理和處理平台,專注於圖像和視頻的存儲、管理、處理和優化。它提供了豐富的 API 和開發工具,
幫助開發者在網頁或應用程序中更高效地處理多媒體內容,基本上我們不會用到優化跟處理,今天就是專注再上傳跟取得網址的部份
其實這功能很強大,他甚至有自己的 marketplace

2. 先註冊,註冊完之後就可以拿到 API KEY 
之後你可以拿到一個連 environment variable 基本上格式就是
cloudinary://<your_api_key>:<your_api_secret>@dhxxxxx
3. 再來就是程式碼的部份,基本上官方有提供套件,所以並不困難
https://www.nuget.org/packages/CloudinaryDotNet/
C# code:
var cloudinary = new CloudinaryDotNet.Cloudinary("cloudinary://:@dhxxxxx");
var uploadParams = new ImageUploadParams()
{
File = new FileDescription(filePath),
UseFilename = true,
UniqueFilename = false,
Overwrite = true
};
var uploadResult = cloudinary.Upload(uploadParams);
if (uploadResult.JsonObj != null)
{
return uploadResult.JsonObj["secure_url"].ToString();
}
return null;
/* Response JSON
{{
"asset_id": "2bcc379697893627882e0f0f569a6576",
"public_id": "pihu",
"version": 1724224427,
"version_id": "31e415bbbd9c0d1b99ed59a8d026d893",
"signature": "23984bb139a73020fe443d35d1c377216965bdba",
"width": 586,
"height": 478,
"format": "jpg",
"resource_type": "image",
"created_at": "2024-08-21T07:13:47Z",
"tags": [],
"bytes": 189345,
"type": "upload",
"etag": "6efd24d90a9b6fd9cf6d7729f70179de",
"placeholder": false,
"url": "http://res.cloudinary.com/dhb7dyad5/image/upload/v1724224427/pihu.jpg",
"secure_url": "https://res.cloudinary.com/dhb7dyad5/image/upload/v1724224427/pihu.jpg",
"asset_folder": "",
"display_name": "pihu",
"original_filename": "pihu",
"api_key": "72999999999999"
}}
*/
基本上就可以拿到,上傳後的網址
4. 身為 白嫖 試用一族必須要注意免費的用量,他官方是寫你是用的是所謂的 credit 但是這 credit 要怎麼計算呢?
他預設會給你 25 credits ,然後他有 一個舉例:
他官方是這樣寫的:
一個 credit 可用於:
1000 次轉換
大多數圖像轉換(包括複雜的鏈式轉換)都算作單個轉換。
大多數視頻轉換都是按秒計數的。
(每秒轉換的次數取決於提供的視頻解析度)。
某些需要複雜處理的高級轉換或格式具有特殊的轉換計數規則。
1 GB 託管存儲空間
存儲包括您的主要資產存儲、每個派生資產的緩存副本(來自已交付的轉換)以及備份到 Cloudinary 備份存儲的任何修訂。
1 GB 提供的頻寬
對於圖像,頻寬基於傳輸的圖像檔大小。
對於視頻,1 GB 通常等於 ~500 秒的傳輸標清視頻或 ~250 秒的高清視頻)
或每種的組合部分。
例如,假設在一個 30 天內,您需要:
2 GB 影像和視訊儲存空間(2 學分)
4 GB 傳輸頻寬(4 學分)
4000 次轉換 (4 credits)
基本上,我覺得一般狀況下,一個中小網站,透過 CDN 做緩存,應該是可以,當然如果量大就是乖乖只能買 credit 了,但是至少算是給的福利還可以
-
本文原文首發於我的個人部落格:可程式化的免費圖床方案 - Cloudinary
reference:
https://community.cloudinary.com/discussion/437/question-about-credit
https://cloudinary.com/documentation/dotnet_quickstart
https://cloudinary.com/documentation/developer_onboarding_faq_free_plan
---
Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer.
