Analisis
Menurut Perilaku Permintaan dan Respons yang terdokumentasi , dan Kode Status HTTP yang Didukung untuk Asal Mula Kustom , Amazon CloudFront tidak mengikuti Pengalihan , sayangnya:
[...] Setelah Anda mengkonfigurasi arahan ulang, pertama kali pengguna akhir mengajukan permintaan untuk objek, CloudFront Front mengirimkan permintaan ke titik asal, dan titik asal merespons dengan arahan ulang (misalnya, 302 Dipindahkan Sementara). CloudFront menyimpan cache redirect dan mengembalikannya ke pengguna akhir. CloudFront tidak mengikuti arahan ulang. [penekanan milikku]
Tentu saja, Anda menggunakan Amazon S3 daripada asal kustom, dan bagian terkait terutama tidak ada dari Perilaku Permintaan dan Respons untuk Asal Amazon S3 , tetapi pengalihan Amazon S3 hanya ditambahkan baru-baru ini (lihat Amazon S3 - Dukungan untuk Situs Web Pengalihan ), mungkin saja masih ada yang hilang.
Karena itu saya berani menebak bahwa Anda tidak menerima file kosong dengan kode status HTTP 200 OK , melainkan status HTTP 301 Pindah secara permanen tanpa badan sama sekali - apakah Anda benar-benar memeriksa ini dengan browser atau akhirnya hanya dengan alat baris perintah seperti mis. CURL atau HTTPie ? Alat yang terakhir biasanya membutuhkan parameter eksplisit untuk mengikuti arahan ulang, jadi ini mungkin mudah diketahui.
Solusi Potensial
Jika analisis ternyata benar, Anda harus mengonfigurasi pengalihan untuk secara eksplisit menargetkan CloudFront, sebagai gantinya, lihat Pengalihan :
Anda dapat mengonfigurasi server web Anda untuk mengalihkan permintaan ke salah satu lokasi berikut:
URL objek baru di server asal. Ketika pengguna akhir mengikuti pengalihan ke URL baru, pengguna akhir mem-bypass CloudFront dan langsung menuju ke asalnya. Sebagai hasilnya, kami menyarankan Anda untuk tidak mengarahkan permintaan ke URL objek yang baru di tempat asal.
URL CloudFront baru untuk objek. Ketika pengguna akhir mengirimkan permintaan yang berisi URL CloudFront baru, CloudFront mendapatkan objek dari lokasi baru di tempat asal Anda, menyimpannya di lokasi tepi, dan mengembalikan objek ke pengguna akhir. Permintaan selanjutnya untuk objek akan dilayani oleh lokasi tepi. Ini menghindari latensi dan beban yang terkait dengan pemirsa yang meminta objek dari asal. Namun, setiap permintaan baru untuk objek akan dikenai biaya untuk dua permintaan ke CloudFront.