Cara Membuat CDN Image Blogger Dengan Domain Sendiri
Cara Membuat CDN Image Blogger Dengan Domain Sendiri - CDN (content delivery network) merupakan kumpulan server global yang bertujuan untuk dapat mendistribusikan konten statis seperti gambar, video, dll yang di cache oleh server yang terletak di dekat lokasi geografis user sehingga meminimalisir latency yang terjadi. Ide artikel kali ini berasal dari salah satu komentar yang ada pada artikel "Cara Membuat Blog Blogger Support PWA", ia menanyakan tentang "caranya mengganti domain gambar blogger dengan domain sendiri". Karena fitur PWA (Progressive Web Apps) sepertinya tidak dapat mengakses asset yang berada luar doamian terdaftar pada service worker (sw.js) sehingga asset gambar icon harus dapat langsung diakses melalaui domain tersebut. Pertanyaan ini saya rasa cukup menarik, jadi saya buatkan sebuah artikel agar dapat dibaca dan di praktikkan oleh pembaca yang lainnya. Di tutorial ini akan meggunakan bantuan layanan cloudflare yang terpasang di domain kalian sebagai CDN serta route url, silahkan kalian baca cara Mengintegrasikan Custom Domain Blogger Dengan Cloudflare
Periapan Membuat CDN Image Blogger
- blogger dengan custom domain yang sudah terintegrasi cloudflare.
- icon blog ukuran 512x512 px
Cara mengganti domain gambar blogger dengan domain sendiri
- Setelah custom domain kalian selesai terintegrasi dengan cloudflare
- selanjutnya kalian masuk ke akun cloudflare kalian, kemudian klik menu Workers
- jika kalian baru pertama kali menggunakan worker, kalian diminta untuk memasukan sub domain yang akan kalian gunakan, (terserah kalian tapi harus yang masih tersedia)
- Dibagian kedua kalian diminta untuk memilih Plan, pilih yang Free saja :d Continue with Free
- Selanjutnya klik Create a Worker
- lalu kalian hapus semua isi pada kolom script dan copykan script di bawah ini
const ORIGINS = {
"images.kamto.workers.dev": "1.bp.blogspot.com",
"www.marwanto606.com": "1.bp.blogspot.com",
}
async function handleRequest(request) {
let url = new URL(request.url)
// Check if incoming hostname is a key in the ORIGINS object
if (url.hostname in ORIGINS) {
const target = ORIGINS[url.hostname]
url.hostname = target
// If it is, proxy request to that third party origin
return await fetch(url.toString().replace('/image', ''), request)
}
}
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
contoh url source gambar akan seperti ini:
https://1.bp.blogspot.com/-tTna-hOkp2E/YHKtF-20eTI/AAAAAAAAD30/h0onq7YowC8hwnVrH3Amo3n7HqT8r40PgCLcBGAsYHQ/s0/marwanto606.png
ubah menggunakan domain yang sudah kalian buat ex:
https://www.marwanto606.com/image/-tTna-hOkp2E/YHKtF-20eTI/AAAAAAAAD30/h0onq7YowC8hwnVrH3Amo3n7HqT8r40PgCLcBGAsYHQ/s0/marwanto606.png
untuk merubah ukuran gambar silahkan gunakan prefix s0 (ukuran asli) dan rubah sesuai ukuran gambar yang ingin kalian buat ex :
https://www.marwanto606.com/image/-tTna-hOkp2E/YHKtF-20eTI/AAAAAAAAD30/h0onq7YowC8hwnVrH3Amo3n7HqT8r40PgCLcBGAsYHQ/s300/marwanto606.png
dan untuk mengakses gambar menjadi format webp tambahkan prefix -rw setelah s0 menjadi ex :
https://www.marwanto606.com/image/-tTna-hOkp2E/YHKtF-20eTI/AAAAAAAAD30/h0onq7YowC8hwnVrH3Amo3n7HqT8r40PgCLcBGAsYHQ/s0-rw/marwanto606.png
Catatan kaki
- worker cloudflare versi free dibatasi sebanyak 100,000 request harian.
- system di blogger mendeteksi url gambar pertama yang akan digunakan sebagai thumbnail, jadi jika gambar pertama pada posting kalian custom ada kemungkinan thumbnail post tersebut akan blank (kosong)
saya sudah berhasil mas https://www.digitalvy.com/image/-WHFVwutRpto/XrTT6jCv1sI/AAAAAAAAAFo/fLlqY_Y-7NMDLnFCVOh5eZEL4mU0FlcxQCLcBGAsYHQ/s1600/post-thumb-md-a.jpg
Terima kasih banyak mas
sip lah :d
jadi harus manual ya mas untuk merubah url dari 1.bp.blogspot.com ke https://www.digitalvy.com/image
lalu kalau untuk url gambar yang lain 2.bp.blogspot.com, 3.bp.blogspot.com, 4.bp.blogspot.com. apa tinggal dimasukkan saja pada workernya?
iya manual gan rubah url nya. semua gambar yang sudah di upload ke blogger dapat diakses lewat 1.bp.blogspot.com kok gan, jadi tidak perlu di tambahkan.
saya sudah tanyakan kepada admin thehackernews cara otomatis merubahnya, katanya bisa menngubah domainnya secara server side melalui worker dengan javascript
minta script nya doang gan, kalau nggak kirimin link nya
tapi itu akan memakan banyak quota harian cloudflare jika website anda memiliki banyak pengunjung. beritahu email anda saya akan kirim melalui email
kalau dengan cara ini apa bisa mas mengubah domainnya otomatis menggunakan javascript?
https://bytes.com/topic/javascript/answers/652740-change-domain-keep-path-javascript
kalo mau rubah gambar otomatis mungkin sorce codenya lebih seperti ini gan, https://www.kompiajaib.com/2018/10/cara-mudah-menggunakan-cdn-staticaly.html
atau dengan adanya fitur baru dari cloudflare transform rules juga bisa ya mas?
sepertinya transform rules itu cuma berlaku di domain yang dipasang cloudflare gan, sedangkan url gambar memang otomatis digenerate dari cdn ex: 1.bp.blogspot.com, jadi cara yang paling simple adalah dengan manual.
apa transform rules bisa mereplace /search/label/ pada url blogger juga mas?
mereplace menjadi /category/ atau sejenisnya
saya baru test transform rules, dan gagal gan. tidak bisa mereplace url nya.
mas kalau tutorial ini bisa membantu gak https://developers.cloudflare.com/rules/transform/use-cases
itu metodenya yang "Rewrite path of moved section of a website" tapi ntah kenapa function regex_replace saya coba masih tidak bisa di simpan, setingannya.
apa metode yang lain sudah berhasil mas?
saya pake metode route worker cloudflare, sudah berhasil gan.
maksudnya seperti cara pada pembuatan pwa?
langkah awal nya sama gan, dengan membuat sebuah workers dan di route. script workernya saya modifikasi dari fetch html ini https://developers.cloudflare.com/workers/examples/fetch-html
jadi nantinya akan seperti apa mas, apa bisa menghilangkan tahun dan bulan pada url postingan blogger atau seperti apa?
kalau memang bisa seperti itu, nantinya akan pada ramai pengguna blogger yang pada pakai cara tersebut dari pada menggunakan javascript milik Kenny Cruz yang memiliki kelemahan saat merefresh halaman
saya terapkan di url label dan url page gan, ex : https://www.marwanto606.com/category/Informasi
https://www.marwanto606.com/page/daftar-isi
tidak saya terapkan di post nya. selain ribet, takut limit workernya karna kebanyakan request.
hebat mas akhirnya ada harapan agar blogger lebih profesioanl tidak kalah sama wordpress
kalau di refresh juga tidak terjadi masalah
saya juga sudah beritahukan ke mas Adhy kompiajaib mas
maksud mas yang ribet pada canonical dan sitemapnya atau ribet pada bagian memodifikasi script workernya?
kalo merewrite url post perlu banyak modifikasi di beberapa bagian lainya, kayak feed,sitemap,canonikal url. untuk saat ini saya masih coba fix bug url untuk breadcrumb page.
kalau sitemap buat sendiri pakai sitemap generator apa bisa mas?
tutorial url labelnya sudah ada mas? saya juga tertarik menerapkannya
kalau pengaturan Custom redirect yang di pengaturan blogger apa bisa di pakai redirect
kalau sitemap xml di buat menggunakan workers apa juga bisa mas seperti membuat sitemap yang kebanyakan blogger lain di buat pada halaman statis?
kalau redirect 301 pada url path /search/label/ dan /p/ menggunakan page rules apa bisa mas? kalau bisa jadi saat mengakses /search/label/ akan redirect otomatis ke /category/.
caranya mungkin hampir sama saat redirect non www. ke www. menggunakan page rules cloudflare. mungkin seperti ini jadinya https://www.marwanto606.com/search/label/* menjadi https://www.marwanto606.com/category/$1
url category masih merequest ke search/label gan kalo di redirect 301 ke category pasti bakalan error.
label dan halaman statis blog ini sudah terindeks google menjadi /category/ dan /page/
yang mas coba redirect itu menggunakan pengaturan dari blogger atau melalui cloudflare page rules?
mas mungkin dengan cara ini bisa mengatasi masalah dari gambar yang di host blogger yang di blokir ISP.
sepertinya bisa gan. kalo yang block dari isp lokal dan cloudflare masih dapat mengakses ke file image tersebut.
saya malah error ada keluar tulisan gini Uncaught SyntaxError: Invalid or unexpected token at line 3 (Code: 10021) padahal semua bener
coba cek ulang codenya gan, itu keterangan syntax error kemungkinan typo pada line 3 saat merubah url ORIGINS
alhamdulillah work di blog saya mas terimakasih tutorialnya sangat bermanfaat
sip gan kalo work :d
oh ya mas coba deh liat website elcreativeacademy.com itu website pake blogger tapi bisa ada fitur submit post pake tinymce terus ada fitur singin/signup pake google auth kalo menurut saya sih fiturnya dibuat pake firebase tapi cara buatnya saya kurang tau coba deh mas dibahas kayaknya seru tuh
kalau untuk login menggunakan google, mas adhy dari kompiajaib.com sudah ada tutorialnya mas
Beda mas kalo yg mas adhy cuman buat sigin adminnya doang kalo yg elcreativeacademy.com semua orang bisa sigin dan bisa submit post dan submit post nya menggunakan tinymce editor langsung di website nya
itu mungkin sudah built-in pada template Materia X2 Premium buatan elcreativeacademy
keren sih itu blog elcreativeacademy itu gan, saya belum ngulik fitur" yang ada di firebase gan, baru coba fdl nya. karna skill coding js saya masih beginner :d jadi masih sulit buat kearah sana.
tapi tidak bisa login pada dashboard blogger
Justru keren ya disitu gan gaperlu login atau diinvite buat jadi author disitu cukup sign up pake Google Auth terus langsung nulis pake tinyMce
mau tanya mas dalam manifest.json untuk pwa lebih baik pake cdn image blogger atau pake cdn statically ya mas mohon pencerahannya, terimakasih
untuk icon itu kayaknya yang penting icon dapat dimuat dan selama tidak error maka tidak masalah gan. saya mengunakan github page untuk cdn nya gan agar lebih pendek url nya.
OK mas terimakasih infonya
dengan script worker ini https://developers.cloudflare.com/workers/examples/rewrite-links bisa rewrite domain gambar blogspot 1.bp.blogspot.com ke domain custom, tanpa script javascript atau manual mas
bisa itu gan,
apa cara tersebut juga bisa me-rewrite url pada file sitemap yang baru ya mas?
sepertinya bisa gan,
lalu bagaimana cara menambahkan multiple domain pada script worker rewrite link untuk domain gambar blogger yang lainnya mas?
sepertinya kalau ingin merewrite domain gambar itu cukup banyak request pada workernya ya mas, mungkin ini kurang cocok untuk blog yang banyak pengunjungnya. apa ini juga akan banyak request pada sitemap yang memiliki banyak url kalau sudah bisa nantinya mas? atau request hanya berjalan ketika ada bot google atau bot lainnya men-crawler sitemapnya saja?
Halo mas, kalau script worker di atas apa juga bisa di pakai untuk mengakses domain non www blogger?
kalau itu bisa akan menarik nantinya
misal nih mas kalau domain kita mati atau nggak di perpanjang berati gambar pada hilang semua? seperti wp kan?
dan menyimpan gambar nya di blogspot atai via cloudflare?
gambarnya masih kesimpan di server google/blogspot mas
nggak work gan,masih pakai url blogspot
error gan
Error 1101 Ray ID: ********* • 2021-07-30 08:52:35 UTC
Worker threw exception
What happened?
You've requested a page on a website (www.farih.web.id) that is on the Cloudflare network. An unknown error occurred while rendering the page.
What can I do?
If you are the owner of this website:
you should login to Cloudflare and check the error logs fo
sekarang error
400. That’s an error.
Your client has issued a malformed or illegal request. That’s all we know.
sekarang dah bisa gan thaks you mantappp
sip lah kalo dah bisa,
o iya gan cara redirect
sebelum nya : https://1.bp.blogspot.com/-LpL4qlDSZKk/YILiIc7ugLI/AAAAAAAABCI/T50HgzQ_qaYZC0guPfhz7XGighKx7t7nQCLcBGAsYHQ/s630/images%2B%252812%2529.jpeg
menjadi : https://farih.web.id/cdn/-LpL4qlDSZKk/YILiIc7ugLI/AAAAAAAABCI/T50HgzQ_qaYZC0guPfhz7XGighKx7t7nQCLcBGAsYHQ/s630/images%2B%252812%2529.jpeg
kalau pakai script dari kompi jadi :
https://farih.web.id/cdn/1.bp.blogspot.com/-LpL4qlDSZKk/YILiIc7ugLI/AAAAAAAABCI/T50HgzQ_qaYZC0guPfhz7XGighKx7t7nQCLcBGAsYHQ/s630/images%2B%252812%2529.jpeg
Halo mau tanya mas, apa bisa dengan workers menambahkan sebuah callback pada sebuah api?
aku belum pernah coba callback gan, jadi kurang tau.
saya sudah menggunakan rapidapi untuk Api-nya
Punya saya error 400 kenapa ya mas?
error 400 itu bad request gan, kemungkinan route nya. silahkan di cek lagi.
Oke mas, coba saya ulangi dari awal
I did exactly what you said. I am getting an invalid route error when creating a route? how can i solve it.
what kind of error, please attach a picture so I can help to solve it.
website loginsk(.)com bisa menggunakan tanpa www. katanya hanya menggunakan redirect dan dns. pemiliknya orang indo.
apakah di share cara penerapannya gan? sepertinya saya tahu siapa yang punya.
gak mas, yang punya orang ini facebook.com/xilents
ini diskusi saya dengannya https://web.facebook.com/groups/377251292926061/posts/948871185764066/
itu mas yang terkait kanonikal untuk halaman custom permalink, apakah bisa dengan cara mendapatkan link-nya "window.location.href" lalu merewrite html pakai workers.
saya ada refrensi mas https://nooshu.com/blog/2021/03/02/cloudflare-worker-recipes-for-frontend-performance-testing, https://www.section.io/blog/implementing-service-workers-on-server, https://egghead.io/lessons/cloudflare-render-html-pages-with-cloudflare-workers
sudah tahu caranya mas?
belum ngulik lagi gan :d
tapi menurut mas, cara seperti itu bisa atau tidak ya? url page yang sudah dicustom itu di ambil link lalu di rewrite ke htmlnya
ini mas ada yang sudah berhasil merewrite canonicalnya dan juga berhasil membuat blogger menjadi subdirektori foreach.id/blog/2020/10/how-to-setup-blog-in-subdirectory-of.html.
nah itu tinggal di praktikkan gan.
sudah mencobanya mas?
Halo mas, saya sudah menemukan kode yang lebih singkat untuk custom permalink dan rewrite canonicalnya juga. routenya https://www.domain.com/test-page*
addEventListener("fetch", event => {
const request = event.request
event.respondWith(handleRequest(event))
})
const OLD_URL = "https://www.domain.com/p/test.html";
const NEW_URL = "https://www.domain.com/test-page";
class AttributeRewriter {
constructor(attributeName) {
this.attributeName = attributeName
}
element(element) {
const attribute = element.getAttribute(this.attributeName)
if (attribute) {
element.setAttribute(
this.attributeName,
attribute.replace(OLD_URL, NEW_URL)
)
}
}
}
async function handleRequest(req) {
const url = 'https://www.domain.com/p/test.html'
const res = await fetch(url)
return new HTMLRewriter()
.on("link", new AttributeRewriter("href"))
.on("meta", new AttributeRewriter("content"))
.transform(res)
}
itu code rewrite nya masih static kah gan atau untuk semua halaman,
bentar mas saya kirimkan kodenya ke email. kalau saat ini masih halaman statis saja dan label. tapi kalau untuk postingan saya juga masih bingung untuk fetch url dan pengaturan routenya
ini untuk cdn font sama jquery/js lainnya terus di cache setahun pake cloudflare bisa gak ya bang? kalo bisa gimana caranya?
kalau nyimpan jquery atau file statisnya pakai github seperti cara pada tutorial di atas, lebih baik pakai cloudflare pages saja biar kuota workers harian tidak cepat habis. itu sama saja pakai cache cloudflare. tinggal sambungkan akun github dengan cloudflare melalui menu cloudflare pages. setelah itu pilih repo githubnya lalu sambungkan ke subdomain anda. untuk pengaturan cache bisa dilihat pada tutorialnya di website ini.
cloudflare pages juga pake kuota harian (100.000/hari)
itu kuota function jika ingin membangun sebuah app di cloudflare pages, kalau hanya untuk sebagai penyimpanan maupun cdn tidak akan terhitung.
Izin tanya mas URL halaman statis di blog ini kok bisa seperti format wordpress ya? apa itu pake cloudflare juga?
iya gan, pake route dan worker cloudflare itu.
Ada tutorialnya kah mas?
tidak saya tulis tutorialnya gan. ini kalo mau coba, code worker yang saya gunakan https://github.com/marwanto606/cloudflare_worker
Oke mas terimakasih,
Bang kok gk berhasil ya, sekarang jg udh pake blogger.googleusercontent.com buat link image jd buat post baru bukan 1/2.bp lagi mas
iya gan, karena url cdn gambar nya udah berubah sekarang.