Skip to content

API Token से फ़ाइल अपलोड

API Token से फ़ाइल अपलोड करना स्क्रिप्ट, स्वचालन कार्यों और बाहरी प्रोग्रामों के लिए उपयुक्त है। ImgHost की वेब इंटरफ़ेस खोलने की ज़रूरत नहीं होती; साइट का पता, API Token, स्थानीय फ़ाइल का मार्ग और एक वास्तविक अपलोड चैनल देने पर फ़ाइल भेजी जा सकती है। सफल होने पर स्क्रिप्ट फ़ाइल का लिंक लौटाती है।

API Token संपादित करें

तैयारी

प्रशासन पैनल में खोलें:

text
System Settings -> Security Settings -> API Token

API Token बनाते या संपादित करते समय अपलोड की अनुमति चालू रखें और कोई वास्तविक डिफ़ॉल्ट अपलोड चैनल चुनें। API Token अपलोड में स्मार्ट वितरण का उपयोग नहीं होता, इसलिए स्क्रिप्ट में __smart__ न भेजें। s3, github, telegram जैसे वास्तविक चैनल कुंजी का उपयोग करें।

अपलोड स्क्रिप्ट डाउनलोड करें

ImgHost दस्तावेज़ में Node.js पर आधारित दो स्क्रिप्ट दी गई हैं:

स्क्रिप्टउपयोग
एक अनुरोध वाली अपलोड स्क्रिप्टकेवल एक बार /upload को बुलाती है; छोटी फ़ाइलों और इंटरफ़ेस जाँच के लिए उपयुक्त
खंडों में अपलोड करने वाली स्क्रिप्टचैनल के अनुसार खंडों में अपलोड, सीधा अपलोड या प्लेटफ़ॉर्म सत्र उपयोग करती है; बड़ी फ़ाइलों के लिए उपयुक्त

स्क्रिप्ट चलाने के लिए स्थानीय मशीन पर Node.js 18 या उससे नया संस्करण चाहिए।

उपलब्ध चैनल देखें

दोनों स्क्रिप्ट वर्तमान API Token से उपलब्ध अपलोड चैनल पहले दिखा सकती हैं:

powershell
node imghost-token-single-upload.mjs --base-url "https://your-domain" --token "your API Token" --list-channels
node imghost-token-chunk-upload.mjs --base-url "https://your-domain" --token "your API Token" --list-channels

इस मोड में --file और --channel देना आवश्यक नहीं है। परिणाम में डिफ़ॉल्ट अपलोड चैनल, मुख्य चैनल कुंजी, उप-चैनलों के नाम और भार संतुलन की स्थिति मिलती है। गुप्त कुंजियाँ, रीफ़्रेश टोकन या संवेदनशील सेटिंग्स वापस नहीं आतीं।

कौन सा अपलोड तरीका चुनें

तरीकाकब उपयोग करेंव्यवहार
एक अनुरोध में अपलोडछोटी फ़ाइल, सरल स्क्रिप्ट, इंटरफ़ेस जाँचपूरी फ़ाइल एक अनुरोध में /upload पर भेजता है
खंडों में अपलोडबड़ी फ़ाइल या समयसीमा पार कर सकने वाली फ़ाइलचैनल के अनुसार खंड, सीधा अपलोड या प्लेटफ़ॉर्म सत्र उपयोग करता है

फ़ाइल बड़ी हो तो पहले खंडों में अपलोड वाली स्क्रिप्ट उपयोग करें। एक अनुरोध में अपलोड Cloudflare के अनुरोध आकार, Worker स्मृति और गंतव्य प्लेटफ़ॉर्म की सीमाओं से प्रभावित हो सकता है।

एक अनुरोध में अपलोड

यह स्क्रिप्ट पूरी फ़ाइल को एक ही अनुरोध में /upload पर भेजती है:

powershell
node imghost-token-single-upload.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --file "D:\test\image.png" `
  --channel s3 `
  --folder "photos/2026"

API Token को परिवेश चर में भी रखा जा सकता है:

powershell
$env:IMGHOST_API_TOKEN="your API Token"
node imghost-token-single-upload.mjs --base-url "https://your-domain" --file "D:\test\image.png" --channel s3

एक अनुरोध वाले अपलोड के पैरामीटर

पैरामीटरआवश्यकविवरण
--base-url <url>हाँImgHost साइट का पता, जैसे https://image.ai6.me
--token <token>हाँAPI Token; IMGHOST_API_TOKEN परिवेश चर भी उपयोग कर सकते हैं
--file <path>हाँस्थानीय फ़ाइल का मार्ग
--channel <key>हाँवास्तविक अपलोड चैनल
--folder <path>नहींअपलोड फ़ोल्डर, जैसे photos/2026 या /user/
--name-type <type>नहींनामकरण तरीका; सर्वर के uploadNameType से मेल खाता है, डिफ़ॉल्ट default
--channel-name <name>नहींकिसी खास उप-चैनल या खाते को चुनने के लिए; न देने पर सर्वर चैनल सेटिंग्स से चुनता है
--retries <n>नहींअस्थायी त्रुटि पर दोबारा प्रयासों की संख्या; डिफ़ॉल्ट 3
--timeout-ms <n>नहींएक अनुरोध की समयसीमा, मिलीसेकंड में; डिफ़ॉल्ट 180000
--output <pretty|json>नहींआउटपुट का रूप; डिफ़ॉल्ट pretty
--save-response <path>नहींअंतिम परिणाम JSON फ़ाइल में सहेजता है
--list-channelsनहींकेवल चैनल दिखाता है, फ़ाइल अपलोड नहीं करता

चैनल कुंजियाँ

चैनल कुंजीचैनल
telegram / tgTelegram
discord / dcDiscord
cfr2 / r2Cloudflare R2
s3S3
webdav / wdWebDAV संग्रहण चैनल
github / ghGitHub Releases
gitlab / glGitLab Packages
huggingface / hfHugging Face
onedrive / odOneDrive
googledrive / google / gdGoogle Drive
dropbox / dbDropbox
yandex / yxYandex Disk
pcloud / pdpCloud

एक अनुरोध वाले अपलोड की आकार सीमा

एक अनुरोध वाले अपलोड में फ़ाइल को 100 MB से कम रखना बेहतर है। नीचे दिए चैनलों पर स्क्रिप्ट स्थानीय सीमा लागू करती है:

चैनलसीमा
Telegram20 MiB
Discord10 MiB
S364 MiB
WebDAV64 MiB
GitHub Releases64 MiB
GitLab Packages64 MiB

सीमा पार होने पर स्क्रिप्ट भेजने से पहले स्थानीय त्रुटि दिखाती है। अन्य चैनलों पर स्क्रिप्ट 100 MB की अलग स्थानीय सीमा नहीं लगाती; अनुरोध बहुत बड़ा हो तो त्रुटि Cloudflare या गंतव्य प्लेटफ़ॉर्म से आएगी।

खंडों में अपलोड

खंडों में अपलोड वाली स्क्रिप्ट पहले API Token से सर्वर से अपलोड लक्ष्य तय करवाती है, फिर चुने हुए चैनल का बड़ा फ़ाइल मार्ग उपयोग करती है। उपयोगकर्ता को स्वयं सत्र बनाना, खंड भेजना, जोड़ना या पूर्णता अनुरोध लिखना नहीं पड़ता।

powershell
node imghost-token-chunk-upload.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --file "D:\test\video.zip" `
  --channel github `
  --folder "photos/2026" `
  --concurrency 3

खंडों में अपलोड के पैरामीटर

पैरामीटरआवश्यकविवरण
--base-url <url>हाँImgHost साइट का पता
--token <token>हाँAPI Token; IMGHOST_API_TOKEN परिवेश चर भी उपयोग कर सकते हैं
--file <path>हाँस्थानीय फ़ाइल का मार्ग
--channel <key>हाँवास्तविक अपलोड चैनल
--folder <path>नहींअपलोड फ़ोल्डर
--name-type <type>नहींनामकरण तरीका; सर्वर के uploadNameType से मेल खाता है, डिफ़ॉल्ट default
--channel-name <name>नहींखास उप-चैनल या खाता
--concurrency <n>नहींएक साथ चलने वाले अपलोड की संख्या; डिफ़ॉल्ट 1, अधिकतम 3
--retries <n>नहींअस्थायी त्रुटि पर दोबारा प्रयासों की संख्या; डिफ़ॉल्ट 3
--timeout-ms <n>नहींहर अनुरोध की समयसीमा, मिलीसेकंड में; डिफ़ॉल्ट 180000
--output <pretty|json>नहींआउटपुट का रूप; डिफ़ॉल्ट pretty
--save-response <path>नहींअंतिम परिणाम JSON फ़ाइल में सहेजता है
--list-channelsनहींकेवल चैनल दिखाता है, फ़ाइल अपलोड नहीं करता

खंडों में अपलोड के मार्ग

चैनल कुंजीअपलोड मार्ग
telegram / tg/upload के माध्यम से वास्तविक खंड सत्र
discord / dc/upload के माध्यम से वास्तविक खंड सत्र
cfr2 / r2/upload के माध्यम से वास्तविक खंड सत्र
github / gh/upload के माध्यम से वास्तविक खंड सत्र
gitlab / gl/upload के माध्यम से वास्तविक खंड सत्र
webdav / wd/upload के माध्यम से वास्तविक खंड सत्र
s3S3 बहु-भाग अपलोड
onedrive / odOneDrive अपलोड सत्र
googledrive / google / gdGoogle Drive पुनरारंभ योग्य अपलोड
dropbox / dbDropbox अपलोड सत्र
yandex / yxYandex सीधा अपलोड लिंक
pcloud / pdpCloud अपलोड लिंक
huggingface / hfHugging Face LFS अपलोड

परीक्षणों में Yandex पर आर्काइव या संपीड़ित फ़ाइलें भरोसेमंद नहीं रहीं। Yandex चैनल उपयोग करते समय गैर-आर्काइव फ़ाइल चुनें।

परिणाम

अपलोड सफल होने पर स्क्रिप्ट ऐसा परिणाम दिखाती है:

text
success
src: /file/photos/2026/example.png
url: https://your-domain/file/photos/2026/example.png
fileId: photos/2026/example.png
फ़ील्डविवरण
srcसाइट के भीतर फ़ाइल का मार्ग
urlपूरा पहुँच लिंक, जिसे अपने स्क्रिप्ट या डेटाबेस में सीधे रखा जा सकता है
fileIdफ़ाइल पहचान, जो बाद की खोज, प्रबंधन या लॉग के लिए उपयोगी है
channelNameखंडों में अपलोड के समय वास्तविक उप-चैनल या खाते का नाम लौट सकता है

--output json देने पर स्क्रिप्ट पूरा JSON दिखाती है, जिसे प्रोग्राम आसानी से पढ़ सकते हैं।

एक अनुरोध वाली API सीधे बुलाना

स्क्रिप्ट के बिना भी एक अनुरोध वाला अपलोड इंटरफ़ेस सीधे बुलाया जा सकता है:

text
POST https://your-domain/upload?uploadChannel=s3&uploadFolder=photos/2026&uploadNameType=default
Authorization: Bearer your API Token
Content-Type: multipart/form-data

फ़ॉर्म फ़ील्ड:

फ़ील्डआवश्यकविवरण
fileहाँअपलोड की जाने वाली फ़ाइल

क्वेरी पैरामीटर:

पैरामीटरआवश्यकविवरण
uploadChannelहाँवास्तविक अपलोड चैनल
uploadFolderनहींअपलोड फ़ोल्डर
uploadNameTypeनहींनामकरण तरीका
channelNameनहींखास उप-चैनल या खाता

सफल होने पर इंटरफ़ेस ऐसा परिणाम लौटाता है:

json
{
  "success": true,
  "src": "/file/photos/2026/example.png",
  "url": "https://your-domain/file/photos/2026/example.png",
  "fileId": "photos/2026/example.png"
}

सामान्य प्रश्न

बड़ी फ़ाइल एक अनुरोध में अपलोड नहीं होती

एक अनुरोध वाला /upload पूरी फ़ाइल एक साथ भेजता है। बड़ी फ़ाइल Cloudflare, Worker स्मृति या गंतव्य प्लेटफ़ॉर्म की सीमा से रुक सकती है। बड़ी फ़ाइलों के लिए खंडों में अपलोड वाली स्क्रिप्ट उपयोग करें।

--channel-name देने पर भी त्रुटि आती है

पहले जाँचें कि चुने हुए चैनल में ठीक उसी नाम का उप-चैनल मौजूद है और सक्रिय है। --channel-name न देने पर सर्वर चैनल सेटिंग्स के अनुसार उपलब्ध खाता चुनता है।

परिणाम किसी दूसरे प्रोग्राम में उपयोग करना है

--output json उपयोग करें या --save-response result.json दें। प्रोग्राम JSON में url फ़ील्ड पढ़कर पूरा फ़ाइल लिंक ले सकता है।

Yandex पर आर्काइव अपलोड विफल होता है

Yandex आर्काइव या संपीड़ित फ़ॉर्मैट को भरोसेमंद तरीके से समर्थन नहीं करता। यह प्लेटफ़ॉर्म नीति से जुड़ा हो सकता है। Yandex चैनल के लिए गैर-आर्काइव फ़ाइल उपयोग करें।

Released as user documentation for ImgHost.