Skip to content

API Token ile Dosya Yükleme

API Token ile yükleme; betikler, otomasyon işleri ve üçüncü taraf programlar için tasarlanmıştır. Web UI'yi açmanız gerekmez. Site URL'sini, token değerini, yerel dosya yolunu ve gerçek bir yükleme kanalını sağladığınız sürece dosya ImgHost'e yüklenebilir ve yanıt dosya URL'sini içerir.

API Token düzenleme

Başlamadan Önce

Yönetim panelini açın, ardından şuraya gidin:

text
System Settings -> Security Settings -> API Token

API Token oluştururken veya düzenlerken yükleme izni olduğundan ve gerçek bir varsayılan yükleme kanalı kullandığından emin olun. API Token yüklemeleri Akıllı Yönlendirme girişini kullanmaz; betikler de gerçek bir kanal göndermelidir.

Yükleme Betiklerini İndirme

Dokümantasyon paketi iki Node.js betiği sağlar:

BetikAmaç
Tek istekli yükleme betiği/upload öğesini bir kez çağırır. Küçük dosyalar ve bağlantı testleri için kullanışlıdır.
Parçalı yükleme betiğiAPI Token parçalama, doğrudan yükleme veya platform yükleme oturumlarını kullanır. Büyük dosyalar için önerilir.

Node.js 18 veya üzeri gerekir.

Kullanılabilir Kanalları Listeleme

Her iki betik de geçerli API Token tarafından kullanılabilen yükleme kanallarını listeleyebilir:

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

Kanallar listelenirken --file ve --channel gerekli değildir. Yanıt varsayılan yükleme kanalını, yükleme kanalı key değerlerini, alt kanal adlarını ve yük dengeleme durumunu içerir. Gizli değerler, yenileme token değerleri ve diğer hassas yapılandırma değerleri döndürülmez.

Yükleme Modu Seçimi

ModEn Uygun KullanımAçıklama
Tek istekli yüklemeKüçük dosyalar, basit betikler, bağlantı testleriTüm dosyayı tek istekte /upload öğesine gönderir.
Parçalı yüklemeBüyük dosyalar veya zaman aşımına uğraması muhtemel dosyalarBetik kanala özgü parçalı, doğrudan veya yükleme oturumu akışını seçer.

Daha büyük dosyalar için önce parçalı yükleme betiğini kullanın. Tek istekli yüklemeler Cloudflare istek boyutu, Worker belleği ve her platformun kendi sınırlarıyla sınırlıdır.

Tek İstekli Yükleme

Tek istekli betik /upload öğesine bir istek gönderir.

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"

Token değerini bir ortam değişkenine de koyabilirsiniz:

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

Tek İstekli Yükleme Parametreleri

ParametreGerekliAçıklama
--base-url <url>EvetImgHost site URL'si, örneğin https://image.ai6.me.
--token <token>EvetAPI Token. IMGHOST_API_TOKEN ortam değişkenini de kullanabilirsiniz.
--file <path>EvetYerel dosya yolu.
--channel <key>EvetYükleme kanalı.
--folder <path>HayırYükleme klasörü, örneğin photos/2026 veya /user/.
--name-type <type>HayırAdlandırma modu; sunucu tarafındaki uploadNameType değerine eşlenir. Varsayılan default.
--channel-name <name>HayırAlt kanal veya hesabı seçer. Atlanırsa sunucu tarafındaki kanal yapılandırması karar verir.
--retries <n>HayırGeçici hata yeniden deneme sayısı. Varsayılan 3.
--timeout-ms <n>Hayırİstek zaman aşımı. Varsayılan 180000.
--output <pretty|json>HayırÇıktı biçimi. Varsayılan pretty.
--save-response <path>HayırSon JSON yanıtını dosyaya kaydeder.
--list-channelsHayırGeçerli token için kullanılabilir kanalları listeler ve çıkar.

Tek İstekli Yükleme Kanalları

Kanal KeyKanal
telegram / tgTelegram
discord / dcDiscord
cfr2 / r2Cloudflare R2
s3S3
webdav / wdWebDAV depolama kanalı
github / ghGitHub Releases
gitlab / glGitLab Packages
huggingface / hfHugging Face
onedrive / odOneDrive
googledrive / google / gdGoogle Drive
dropbox / dbDropbox
yandex / yxYandex Disk
pcloud / pdpCloud

Tek İstekli Boyut Sınırları

Mümkünse tek istekli dosyaları 100 MB altında tutun.

Bu kanallarda tek istekli /upload için açık engelleme eşikleri vardır:

KanalTek İstek Sınırı
Telegram20 MiB
Discord10 MiB
S364 MiB
WebDAV64 MiB
GitHub Releases64 MiB
GitLab Packages64 MiB

Bir dosya bu sınırlardan birini aşarsa betik eşleşen hatayı yerel olarak bildirir. Diğer kanallarda betikte sabit kodlanmış 100 MB yerel kontrol yoktur. İstek gövdesi Cloudflare veya platform kapasitesini aşarsa hatayı Cloudflare ya da uzak platform döndürür.

Parçalı Yükleme

Parçalı yükleme betiği önce hedef dosyayı çözmek için sunucu tarafına sorar, ardından seçilen kanalın büyük dosya akışını izler. Parça oturumu, birleştirme veya tamamlama isteklerini kendiniz yazmanız gerekmez.

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

Parçalı Yükleme Parametreleri

ParametreGerekliAçıklama
--base-url <url>EvetImgHost site URL'si.
--token <token>EvetAPI Token. IMGHOST_API_TOKEN ortam değişkenini de kullanabilirsiniz.
--file <path>EvetYerel dosya yolu.
--channel <key>EvetYükleme kanalı.
--folder <path>HayırYükleme klasörü.
--name-type <type>HayırAdlandırma modu; sunucu tarafındaki uploadNameType değerine eşlenir. Varsayılan default.
--channel-name <name>HayırAlt kanal veya hesabı seçer. Atlanırsa sunucu tarafındaki kanal yapılandırması karar verir.
--concurrency <n>HayırEşzamanlı yüklemeler. Varsayılan 1, en fazla 3.
--retries <n>HayırGeçici hata yeniden deneme sayısı. Varsayılan 3.
--timeout-ms <n>HayırHer istek için zaman aşımı. Varsayılan 180000.
--output <pretty|json>HayırÇıktı biçimi. Varsayılan pretty.
--save-response <path>HayırSon JSON yanıtını dosyaya kaydeder.
--list-channelsHayırGeçerli token için kullanılabilir kanalları listeler ve çıkar.

Parçalı Yükleme Kanalları

Kanal KeyYükleme Akışı
telegram / tgGerçek parçalı /upload oturumu
discord / dcGerçek parçalı /upload oturumu
cfr2 / r2Gerçek parçalı /upload oturumu
github / ghGerçek parçalı /upload oturumu
gitlab / glGerçek parçalı /upload oturumu
webdav / wdGerçek parçalı /upload oturumu
s3S3 çok parçalı yükleme
onedrive / odOneDrive yükleme oturumu
googledrive / google / gdGoogle Drive sürdürülebilir yükleme
dropbox / dbDropbox yükleme oturumu
yandex / yxYandex doğrudan yükleme URL'si
pcloud / pdpCloud yükleme bağlantısı
huggingface / hfHugging Face LFS yükleme

Yandex sıkıştırılmış dosya örnekleri testlerde kararsızdı. Sıkıştırılmamış dosyaların başarıyla yüklendiği doğrulandı.

Yükleme Yanıtı

Başarılı bir yüklemeden sonra betik şunu yazdırır:

text
success
src: /file/photos/2026/example.png
url: https://your-domain/file/photos/2026/example.png
fileId: photos/2026/example.png
AlanAçıklama
srcSitedeki dahili dosya yolu.
urlKendi betikleriniz veya veritabanı kayıtlarınız için uygun tam herkese açık URL.
fileIdDaha sonraki sorgular, yönetim veya günlükler için yararlı dosya ID'si.
channelNameParçalı betik kullanılan gerçek alt kanalı veya hesabı döndürebilir.

--output json ile betik programatik kullanım için tam JSON yanıtını yazdırır.

Doğrudan Tek İstekli API Çağrısı

Betiği kullanmıyorsanız tek istekli yükleme uç noktasını doğrudan çağırabilirsiniz:

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

Form alanı:

AlanGerekliAçıklama
fileEvetYüklenecek dosya.

Sorgu parametreleri:

ParametreGerekliAçıklama
uploadChannelEvetGerçek yükleme kanalı.
uploadFolderHayırYükleme klasörü.
uploadNameTypeHayırAdlandırma modu.
channelNameHayırAlt kanal veya hesabı seçer.

Başarılı yanıtlar şöyle görünür:

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

FAQ

Büyük Tek İstekli Yüklemeler Başarısız Oluyor

Tek istekli /upload tüm dosyayı tek istekte gönderir. Büyük dosyalar Cloudflare veya uzak platform tarafından engellenebilir. Büyük dosyalar için parçalı yükleme betiğini kullanın.

--channel-name Ayarlı Ama Yükleme Hâlâ Başarısız

Seçilen kanalda bu ada sahip bir alt kanal gerçekten var mı ve etkin mi kontrol edin. --channel-name atlanırsa sunucu tarafı kanal yapılandırmasına göre kullanılabilir hesabı seçer.

Sonucu Başka Bir Programda Kullanmak İstiyorum

--output json kullanın veya --save-response result.json ekleyin. Tam dosya URL'sini almak için url alanını okuyun.

Yandex Arşivleri Yükleyemiyor

Yandex arşiv biçimlerini desteklemez. Bu, platform politikalarından kaynaklanabilir. Yandex kullanırken mümkünse arşiv olmayan dosyalar yükleyin.

Released as user documentation for ImgHost.