Skip to content

Mengelola Konfigurasi dengan API Token

Pengelolaan konfigurasi melalui API Token ditujukan untuk skrip otomatis, alat operasional, dan panel kendali eksternal. API Token dengan izin manage dapat membaca dan mengubah konfigurasi kanal unggahan, pengaturan keamanan, pengaturan halaman, pengaturan lain, serta sebagian relasi federasi ringan tanpa membuka panel admin.

Izin pengelolaan ini hanya membuka operasi ringan yang cocok untuk skrip. Operasi berat yang memerlukan konfirmasi di peramban, pekerjaan bertahap di antarmuka web, atau pembersihan indeks federasi tetap harus dilakukan dari panel admin di peramban.

Edit API Token

Persiapan

Buka panel admin:

text
System Settings -> Security Settings -> API Token

Saat membuat atau mengedit API Token, aktifkan izin pengelolaan. Izin ini dapat mengubah konfigurasi situs, jadi berikan hanya kepada skrip atau pengguna yang tepercaya.

Semua aksi tulis pada tiga skrip pengelolaan hanya menampilkan pratinjau secara bawaan. Setelah pratinjau diperiksa, tambahkan --apply agar perubahan benar-benar disimpan.

API Token juga dapat disimpan dalam variabel lingkungan:

powershell
$env:IMGHOST_API_TOKEN="your API Token"

Mengunduh Skrip Pengelolaan

Dokumentasi ImgHost menyediakan tiga skrip Node.js:

SkripKegunaan
skrip pengelolaan pengaturan unggahanMengelola kanal unggahan, subkanal, dan penyeimbangan beban
skrip pengelolaan pengaturan situsMengelola pengaturan keamanan, pengaturan halaman, dan pengaturan lain
skrip pengelolaan relasi federasiMengelola aksi relasi ringan, permintaan bergabung, dan pesan

Skrip membutuhkan Node.js 18 atau versi yang lebih baru.

Parameter Umum

ParameterWajibKeterangan
--base-url <url>YaAlamat situs ImgHost, misalnya https://image.ai6.me
--token <token>YaAPI Token; dapat diganti dengan variabel lingkungan IMGHOST_API_TOKEN
--retries <n>TidakJumlah percobaan ulang saat gagal sementara; bawaan 3
--timeout-ms <n>TidakBatas waktu tiap permintaan dalam milidetik; bawaan 180000
--output <pretty|json>TidakBentuk keluaran; bawaan pretty, gunakan json untuk integrasi program
--save-response <path>TidakMenyimpan hasil akhir sebagai berkas JSON
--applyTidakBenar-benar menjalankan penulisan; tanpa ini hanya pratinjau
-h / --helpTidakMenampilkan bantuan skrip

Pengaturan Unggahan

Skrip pengaturan unggahan dapat menampilkan, membaca, membuat, mengedit, dan menghapus subkanal. Skrip ini juga dapat menyalakan atau mematikan penyeimbangan beban pada kanal utama.

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

Parameter Pengaturan Unggahan

ParameterKeterangan
--listMenampilkan grup pengaturan unggahan
--getMembaca kanal utama atau subkanal tertentu di bawahnya
--upsertMembuat atau mengedit subkanal; tanpa --apply hanya pratinjau
--deleteMenghapus subkanal; tanpa --apply hanya pratinjau
--load-balance <true|false>Menyalakan atau mematikan penyeimbangan beban kanal utama
--channel <key>Kanal unggahan utama, misalnya s3, github, telegram
--channel-name <name>Nama subkanal atau akun
--set key=valueMengatur satu kolom; dapat diulang dan mendukung jalur bertitik
--patch-json <path>Menggabungkan beberapa kolom dari berkas JSON
--applyMenyimpan perubahan secara nyata

Kunci Kanal

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

Contoh Pengaturan Unggahan

Menampilkan semua pengaturan unggahan:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list

Membaca konfigurasi kanal S3:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --get `
  --channel s3

Membaca subkanal tertentu di bawah S3:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --get `
  --channel s3 `
  --channel-name "backup-s3"

Membuat atau mengedit subkanal WebDAV. Jalankan dahulu tanpa --apply untuk melihat pratinjau:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --upsert `
  --channel webdav `
  --channel-name "backup-webdav" `
  --set enabled=false `
  --set remark="backup test"

Jika pratinjau sudah benar, jalankan lagi dengan --apply:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --upsert `
  --channel webdav `
  --channel-name "backup-webdav" `
  --set enabled=false `
  --set remark="backup test" `
  --apply

Menghapus subkanal:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --delete `
  --channel webdav `
  --channel-name "backup-webdav" `
  --apply

Menyalakan penyeimbangan beban S3:

powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --load-balance true `
  --channel s3 `
  --apply

Untuk perubahan beberapa kolom yang lebih rumit, siapkan berkas JSON lalu gunakan --patch-json:

json
{
  "enabled": true,
  "remark": "primary account"
}
powershell
node imghost-token-upload-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --upsert `
  --channel s3 `
  --channel-name "primary-s3" `
  --patch-json ".\s3-channel.json" `
  --apply

Pengaturan Situs Lainnya

Skrip pengaturan situs mengelola tiga area:

AreaNilai --areaKeterangan
KeamanansecurityAutentikasi pengguna dan admin, perangkat masuk, API Token, moderasi gambar, pembatasan frekuensi pengguna, WebDAV
HalamanpageHalaman global, halaman pengguna, halaman admin, dan efek tampilan
LainnyaothersAPI gambar acak, galeri publik, node federasi lokal, penandaan otomatis, geolokasi IP, cadangan, OCR

Mulailah dengan melihat area, bagian, dan kolom yang dapat diedit:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list-sections

Parameter Pengaturan Situs

ParameterKeterangan
--list-sectionsMenampilkan area, bagian, dan kolom yang dapat diedit
--getMembaca satu bagian konfigurasi
--area <security|page|others>Memilih area konfigurasi
--section <name>Memilih bagian; gunakan nama sesuai keluaran --list-sections
--set key=valueMengatur satu kolom; dapat diulang
--applyMenyimpan perubahan secara nyata

Pada area page, --set memakai ID pengaturan halaman, misalnya starsEffect=true. Pada area security dan others, gunakan nama kolom di dalam bagian, misalnya email=admin@example.com.

Contoh Pengaturan Situs

Membaca pengaturan pemberitahuan pembaruan sistem:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --get `
  --area security `
  --section systemUpdate

Mengubah email pemberitahuan pembaruan. Jalankan dahulu tanpa --apply:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area security `
  --section systemUpdate `
  --set email="admin@example.com"

Lalu simpan dengan --apply:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area security `
  --section systemUpdate `
  --set email="admin@example.com" `
  --apply

Mengubah efek bintang di halaman admin:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area page `
  --section adminSettings `
  --set starsEffect=true `
  --apply

Mengubah bahasa geolokasi IP:

powershell
node imghost-token-site-settings.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --area others `
  --section ipGeolocation `
  --set language="en" `
  --apply

Kolom biasa pada node federasi lokal, seperti status aktif, folder sinkronisasi, dan kode undangan, dapat dibaca atau diubah. Konfirmasi domain tidak dilakukan melalui API Token. Jika panel admin memberi tahu bahwa domain node lokal berbeda dari domain akses saat ini, selesaikan konfirmasi di peramban.

Relasi Federasi

Skrip federasi mengelola status node lokal, node yang Anda ikuti, node yang mengikuti node Anda, pesan, permintaan bergabung, pengajuan ulang saat tidak ada relasi, penerimaan, penolakan, dan aksi relasi ringan yang tidak memerlukan pembersihan indeks.

Penerbitan indeks, penarikan indeks, penghapusan indeks secara bertahap, dan konfirmasi perubahan domain bergantung pada alur lengkap di peramban. Skrip tidak menangani operasi berat tersebut.

Batas Aksi Ringan dan Berat

OperasiDukungan skripKeterangan
Melihat status node lokal dan daftar relasiDidukungHanya membaca buku relasi
Membaca dan mengirim pesanDidukungMembaca atau menulis pesan relasi
Mengajukan bergabung ke node lainDidukungMenggunakan tautan undangan
Mengajukan ulang pada catatan tanpa relasiDidukungHanya untuk kartu outgoing dengan lastResult=none; memerlukan kode undangan 6 karakter
Membatalkan permintaan outgoing yang menungguDidukungHanya membatalkan permintaan yang masih menunggu
Menerima atau menolak permintaan incomingDidukungMemproses permintaan yang masuk ke node Anda
Menghapus relasi incoming yang sudah diterimaDidukungMengubah buku relasi masuk dan memberi tahu pihak lain
Menghapus catatan akhir incomingDidukungMenghapus catatan masuk yang sudah berstatus akhir
Membatalkan langganan outgoing yang sudah diterimaHanya perambanMungkin memerlukan pembersihan indeks federasi lokal
Menghapus catatan akhir outgoingHanya perambanMungkin perlu membersihkan indeks terlebih dahulu
Mengonfirmasi atau membatalkan perubahan domainHanya perambanMemerlukan konfirmasi domain saat ini dan penanganan relasi indeks
Menerbitkan, menarik, atau menghapus indeks secara bertahapHanya perambanMerupakan pekerjaan bertahap di antarmuka web

Parameter Relasi Federasi

ParameterKeterangan
--statusMenampilkan status node federasi lokal serta relasi outgoing dan incoming
--listMenampilkan daftar relasi federasi
--chatMembaca pesan tersimpan dari satu relasi
--send-messageMengirim pesan ke node yang sudah memiliki relasi
--joinMengajukan bergabung ke node lain melalui tautan undangan
--reapplyMengajukan ulang untuk relasi tanpa catatan; memerlukan kode 6 karakter
--acceptMenerima permintaan incoming
--denyMenolak permintaan incoming
--cancelMembatalkan permintaan outgoing yang menunggu atau menghapus relasi incoming yang diterima
--deleteMenghapus catatan akhir incoming
--direction <outgoing|incoming|all>Arah relasi; outgoing adalah node yang Anda ikuti, incoming adalah node yang mengikuti node Anda
--domain <url>Domain node relasi
--invite-link <url>Tautan undangan dari node lain
--invite-code <code>Kode undangan 6 karakter untuk pengajuan ulang
--text <message>Isi pesan
--applyMenyimpan perubahan secara nyata

Contoh Relasi Federasi

Melihat status node lokal dan kedua daftar relasi:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --status

Hanya menampilkan node yang Anda ikuti:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list `
  --direction outgoing

Hanya menampilkan node yang mengikuti node Anda:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --list `
  --direction incoming

Mengajukan bergabung melalui tautan undangan. Jalankan dahulu tanpa --apply:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --join `
  --invite-link "https://peer-domain/federation/invite/abcdef"

Setelah diperiksa, simpan:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --join `
  --invite-link "https://peer-domain/federation/invite/abcdef" `
  --apply

Mengajukan ulang untuk catatan tanpa relasi:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --reapply `
  --domain "https://peer-domain" `
  --invite-code "abc123" `
  --apply

Menerima permintaan incoming:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --accept `
  --domain "https://peer-domain" `
  --apply

Menolak permintaan incoming:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --deny `
  --domain "https://peer-domain" `
  --apply

Mengirim pesan ke relasi yang sudah terbentuk:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --send-message `
  --direction outgoing `
  --domain "https://peer-domain" `
  --text "Hello, this is a test message." `
  --apply

Membatalkan permintaan outgoing yang menunggu:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --cancel `
  --direction outgoing `
  --domain "https://peer-domain" `
  --apply

Menghapus relasi incoming yang sudah diterima:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --cancel `
  --direction incoming `
  --domain "https://peer-domain" `
  --apply

Menghapus catatan akhir incoming:

powershell
node imghost-token-federation.mjs `
  --base-url "https://your-domain" `
  --token "your API Token" `
  --delete `
  --direction incoming `
  --domain "https://peer-domain" `
  --apply

Membatalkan langganan outgoing yang sudah diterima dan menghapus catatan outgoing harus dilakukan dari panel admin di peramban, karena mungkin perlu membersihkan indeks federasi lokal terlebih dahulu.

Domain Tidak Cocok

Jika domain yang tersimpan pada node lokal berbeda dari domain yang menunggu di relasi, skrip langsung mengembalikan galat dan menampilkan currentDomain serta pendingDomain. Kondisi ini harus diselesaikan di panel admin peramban, karena perubahan domain juga berkaitan dengan pembersihan dan konfirmasi indeks keluar.

Jika permintaan bergabung mengembalikan FEDERATION_NODE_DOMAIN_MISMATCH, berarti domain pada tautan undangan tidak cocok dengan domain yang tersimpan di node tujuan. Respons berisi currentOrigin dan detectedOrigin. Gunakan domain yang sudah dikonfirmasi pihak lain, atau minta mereka mengonfirmasi domain melalui panel admin di peramban.

Tanya Jawab

Perintah perubahan dijalankan tetapi tidak berlaku

Perintah tulis hanya menampilkan pratinjau secara bawaan. Setelah pratinjau diperiksa, tambahkan --apply.

Bagaimana mengetahui kolom yang dapat diubah

Untuk pengaturan unggahan, jalankan --get terlebih dahulu dan lihat struktur subkanal yang ada. Untuk keamanan, halaman, dan pengaturan lain, jalankan --list-sections untuk melihat area, bagian, dan kolom yang diizinkan.

Hasil ingin dipakai oleh program lain

Gunakan --output json atau --save-response result.json. Program dapat membaca berkas JSON yang tersimpan secara langsung.

Released as user documentation for ImgHost.