[C#] 可程式化的免費圖床方案 - Cloudinary

2024-08-22

之前圖床都是用 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://<your_api_key>:<your_api_secret>@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&#12288; {{ "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 了,但是至少算是給的福利還可以



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




當麻許的碎念筆記 2014 | Donma Hsu Design.