Skip to content

Muat Naik Fail dengan API Token

Muat naik melalui API Token sesuai untuk skrip, tugas automasi dan aplikasi pihak ketiga. Anda tidak perlu membuka antara muka web ImgHost. Selagi anda memberikan alamat tapak, API Token, laluan fail tempatan dan saluran muat naik sebenar, skrip akan mengembalikan pautan fail selepas muat naik berjaya.

Sunting API Token

Sebelum Bermula

Buka panel pentadbir, kemudian pergi ke:

text
System Settings -> Security Settings -> API Token

Semasa mencipta atau mengedit API Token, pastikan kebenaran muat naik diaktifkan dan saluran muat naik lalai ialah saluran sebenar. Muat naik API Token tidak menggunakan pembahagian pintar, jadi jangan hantar __smart__ daripada skrip. Gunakan kunci saluran sebenar seperti s3, github atau telegram.

Muat Turun Skrip Muat Naik

Dokumentasi ImgHost menyediakan dua skrip Node.js:

SkripKegunaan
skrip muat naik satu permintaanMemanggil /upload sekali sahaja; sesuai untuk fail kecil dan ujian sambungan antara muka
skrip muat naik berbahagiMenggunakan muat naik berbahagi, muat naik langsung atau sesi platform mengikut saluran; sesuai untuk fail besar

Skrip memerlukan Node.js 18 atau versi yang lebih baharu.

Senaraikan Saluran Tersedia

Kedua-dua skrip boleh menyenaraikan saluran muat naik yang tersedia untuk API Token semasa:

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

Dalam mod ini, --file dan --channel tidak diperlukan. Hasilnya mengandungi saluran lalai, kunci saluran utama, nama subsaluran dan status pengimbangan beban. Kunci rahsia, token segar semula dan konfigurasi sensitif tidak dikembalikan.

Memilih Kaedah Muat Naik

KaedahBila digunakanTingkah laku
Muat naik satu permintaanFail kecil, skrip ringkas, ujian antara mukaMenghantar keseluruhan fail ke /upload dalam satu permintaan
Muat naik berbahagiFail besar atau fail yang mudah melebihi had masaMenggunakan bahagian, muat naik langsung atau sesi platform mengikut saluran

Untuk fail besar, gunakan skrip muat naik berbahagi terlebih dahulu. Muat naik satu permintaan dipengaruhi had saiz permintaan Cloudflare, memori Worker dan had platform destinasi.

Muat Naik Satu Permintaan

Skrip ini menghantar keseluruhan fail ke /upload dalam satu permintaan:

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 juga boleh disimpan dalam pemboleh ubah persekitaran:

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

Parameter Muat Naik Satu Permintaan

ParameterWajibPenerangan
--base-url <url>YaURL tapak ImgHost, contohnya https://image.ai6.me
--token <token>YaAPI Token. Anda juga boleh menggunakan pemboleh ubah persekitaran IMGHOST_API_TOKEN
--file <path>YaLaluan fail tempatan
--channel <key>YaSaluran muat naik sebenar
--folder <path>TidakFolder destinasi, contohnya photos/2026 atau /user/
--name-type <type>TidakKaedah penamaan; sepadan dengan uploadNameType pada pelayan, lalai default
--channel-name <name>TidakMemilih subsaluran atau akaun tertentu; jika kosong, pelayan memilih mengikut konfigurasi saluran
--retries <n>TidakBilangan cubaan semula untuk kegagalan sementara; lalai 3
--timeout-ms <n>TidakHad masa satu permintaan dalam milisaat; lalai 180000
--output <pretty|json>TidakFormat output; lalai pretty
--save-response <path>TidakSimpan hasil akhir sebagai fail JSON
--list-channelsTidakHanya menyenaraikan saluran dan tidak memuat naik fail

Kunci Saluran

Kunci saluranSaluran
telegram / tgTelegram
discord / dcDiscord
cfr2 / r2Cloudflare R2
s3S3
webdav / wdSaluran storan WebDAV
github / ghGitHub Releases
gitlab / glGitLab Packages
huggingface / hfHugging Face
onedrive / odOneDrive
googledrive / google / gdGoogle Drive
dropbox / dbDropbox
yandex / yxYandex Disk
pcloud / pdpCloud

Had Saiz Muat Naik Satu Permintaan

Untuk muat naik satu permintaan, fail sebaiknya berada di bawah 100 MB. Saluran berikut mempunyai had tempatan yang jelas dalam skrip:

SaluranHad
Telegram20 MiB
Discord10 MiB
S364 MiB
WebDAV64 MiB
GitHub Releases64 MiB
GitLab Packages64 MiB

Jika saiz fail melebihi had, skrip memaparkan ralat tempatan sebelum menghantar permintaan. Saluran lain tidak diberi had tempatan tetap 100 MB; jika permintaan terlalu besar, ralat akan datang daripada Cloudflare atau platform destinasi.

Muat Naik Berbahagi

Skrip muat naik berbahagi terlebih dahulu meminta pelayan menentukan destinasi muat naik menggunakan API Token, kemudian menjalankan aliran fail besar milik saluran yang dipilih. Pengguna tidak perlu menulis sendiri pembuatan sesi, penghantaran bahagian, penggabungan atau permintaan penyelesaian.

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

Parameter Muat Naik Berbahagi

ParameterWajibPenerangan
--base-url <url>YaAlamat tapak ImgHost
--token <token>YaAPI Token. Anda juga boleh menggunakan pemboleh ubah persekitaran IMGHOST_API_TOKEN
--file <path>YaLaluan fail tempatan
--channel <key>YaSaluran muat naik sebenar
--folder <path>TidakFolder destinasi
--name-type <type>TidakKaedah penamaan; sepadan dengan uploadNameType pada pelayan, lalai default
--channel-name <name>TidakSubsaluran atau akaun tertentu
--concurrency <n>TidakBilangan muat naik serentak; lalai 1, maksimum 3
--retries <n>TidakBilangan cubaan semula untuk kegagalan sementara; lalai 3
--timeout-ms <n>TidakHad masa setiap permintaan dalam milisaat; lalai 180000
--output <pretty|json>TidakFormat output; lalai pretty
--save-response <path>TidakSimpan hasil akhir sebagai fail JSON
--list-channelsTidakHanya menyenaraikan saluran dan tidak memuat naik fail

Laluan Muat Naik Berbahagi

Kunci saluranLaluan muat naik
telegram / tgSesi berbahagi sebenar melalui /upload
discord / dcSesi berbahagi sebenar melalui /upload
cfr2 / r2Sesi berbahagi sebenar melalui /upload
github / ghSesi berbahagi sebenar melalui /upload
gitlab / glSesi berbahagi sebenar melalui /upload
webdav / wdSesi berbahagi sebenar melalui /upload
s3Muat naik multipart S3
onedrive / odSesi muat naik OneDrive
googledrive / google / gdMuat naik Google Drive yang boleh disambung semula
dropbox / dbSesi muat naik Dropbox
yandex / yxPautan muat naik langsung Yandex
pcloud / pdPautan muat naik pCloud
huggingface / hfMuat naik Hugging Face LFS

Dalam ujian, fail arkib atau fail termampat pada Yandex tidak stabil. Apabila menggunakan saluran Yandex, pilih fail bukan arkib.

Hasil

Apabila muat naik berjaya, skrip memaparkan hasil seperti ini:

text
success
src: /file/photos/2026/example.png
url: https://your-domain/file/photos/2026/example.png
fileId: photos/2026/example.png
MedanPenerangan
srcLaluan fail di dalam tapak
urlPautan akses lengkap, sedia disimpan dalam skrip atau pangkalan data anda
fileIdID fail untuk carian, pengurusan atau pencatatan seterusnya
channelNameDalam muat naik berbahagi, boleh mengandungi subsaluran atau akaun yang benar-benar digunakan

Dengan --output json, skrip memaparkan JSON lengkap supaya mudah diproses oleh program.

Memanggil API Satu Permintaan Secara Terus

Tanpa skrip, API muat naik satu permintaan juga boleh dipanggil terus:

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

Medan borang:

MedanWajibPenerangan
fileYaFail yang akan dimuat naik

Parameter pertanyaan:

ParameterWajibPenerangan
uploadChannelYaSaluran muat naik sebenar
uploadFolderTidakFolder destinasi
uploadNameTypeTidakKaedah penamaan
channelNameTidakSubsaluran atau akaun tertentu

Jika berjaya, API mengembalikan hasil seperti ini:

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

FAQ

Muat Naik Fail Besar Gagal dengan Satu Permintaan

/upload satu permintaan menghantar keseluruhan fail sekali gus. Fail besar boleh tersekat oleh Cloudflare, memori Worker atau had platform destinasi. Untuk fail besar, gunakan skrip muat naik berbahagi.

--channel-name Telah Diberikan tetapi Masih Gagal

Pastikan saluran yang dipilih mempunyai subsaluran dengan nama yang sama tepat dan subsaluran itu aktif. Jika --channel-name tidak diberikan, pelayan memilih akaun yang tersedia mengikut konfigurasi saluran.

Hasil Hendak Digunakan oleh Program Lain

Gunakan --output json atau --save-response result.json. Program boleh membaca medan url daripada JSON untuk mendapatkan pautan lengkap.

Muat Naik Arkib Gagal ke Yandex

Yandex tidak menyokong format arkib atau fail termampat dengan stabil. Ini mungkin berkaitan dasar platform. Untuk Yandex, gunakan fail bukan arkib.

Released as user documentation for ImgHost.