Rumah > hujung hadapan web > tutorial js > Saya membina alat arkib web tindanan penuh yang berjalan di Cloudflare

Saya membina alat arkib web tindanan penuh yang berjalan di Cloudflare

Susan Sarandon
Lepaskan: 2024-11-12 04:39:01
asal
381 orang telah melayarinya

I built a full-stack web archive tool running on Cloudflare

Alamat projek: https://github.com/ray-d-song/web-archive

Mengapa membina alat ini

Saya telah lama menjadi pengguna setia ArchiveBox. ArchiveBox ialah alat pengarkiban web yang sangat baik, tetapi ia memerlukan pengehosan sendiri dan mempunyai keperluan pelayan yang tinggi (memerlukan penyemak imbas tanpa kepala). Saya menggunakan Raspberry Pi sebelum ini, dan prestasinya tidak bagus.

Dan untuk tapak web seperti x dan Medium, yang memerlukan log masuk, ArchiveBox perlu mengkonfigurasi token atau kuki secara manual, yang menyusahkan.

Jadi saya fikir, bolehkah ada alat pengarkiban web yang tidak memerlukan pengehosan sendiri, tidak memerlukan penyemak imbas tanpa kepala, tidak mempunyai keperluan untuk pelayan, dan boleh merentas platform? Kemudian saya boleh mengakses halaman arkib saya di mana-mana, pada bila-bila masa, pada mana-mana peranti.

Mengapa Cloudflare

Perkhidmatan Cloudflare's Workers sangat berkuasa dan percuma, dengan banyak pangkalan data D1 dan baldi storan R2, yang sangat sesuai untuk membina alat ini.

Lebih penting lagi, ekosistem Cloudflare lengkap, menyokong penggunaan satu klik dan pemindahan data. Perkhidmatan CDN global Cloudflare juga boleh digunakan.

Apa yang boleh dilakukan oleh alat ini

  • [x] Klasifikasi folder
  • [x] Imej pratonton halaman
  • [x] Carian kata kunci tajuk
  • [x] Pameran, kongsi halaman yang anda rakam
  • [x] Sokongan mudah alih
  • [x] Sistem klasifikasi tag
  • [x] Mod Baca

Bagaimana ia berfungsi

arkib web terdiri daripada bahagian berikut:

  • Sambungan penyemak imbas: Simpan halaman sebagai petikan halaman web dan muat naik ke pelayan.
  • Pelayan: Terima syot kilat dan metadata yang dimuat naik oleh sambungan penyemak imbas, dan simpannya dalam pangkalan data dan baldi storan.
  • Pelanggan web: Tanya syot kilat dan paparkannya.

Saya menggunakan kod sumber terbuka SingleFile untuk menyimpan halaman sebagai satu fail html (malah termasuk imej dan video).

Pelayan sepenuhnya berdasarkan perkhidmatan Cloudflare's Workers, dengan pangkalan data D1 untuk menyimpan metadata dan baldi storan R2 untuk menyimpan syot kilat.

Walaupun bilangan antara muka tidak sedikit, saya tidak menggunakan ORM, sebenarnya saya mencuba prisma dan gerimis, kerana ia menyebabkan banyak masalah untuk penempatan, jadi ia tidak digunakan pada akhirnya.

Klien web dibina dengan React, Vite, TailwindCSS dan shadcn/ui, dan saiz pakejnya sangat kecil, hanya 1.5MB. Produk yang dibungkus akan dibenamkan dalam folder aset pelayan, jadi ia tidak perlu digunakan secara berasingan semasa menggunakan pelayan.

Had

Saya sangat menyukai perkhidmatan percuma Cloudflare, tetapi terdapat beberapa pengehadan.

  • Masa pengiraan CPU bagi satu permintaan tidak boleh melebihi 10 milisaat, jika tidak, ia akan ditamatkan secara paksa. (Saya terkejut apabila mendapati akaun berbayar adalah 30 saat ?)
  • Penggunaan memori tidak boleh melebihi 256MB, jika tidak, ia akan ditamatkan secara paksa.

Penghadan ini sedikit sebanyak menjejaskan pembinaan tapak web, seperti penghuraian ssr atau dom semasa merangkak.

Walau bagaimanapun, tidak kira bagaimana ia dikatakan, terima kasih, Cloudflare!

Atas ialah kandungan terperinci Saya membina alat arkib web tindanan penuh yang berjalan di Cloudflare. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan