ID region
REGION_ID
adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r
disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Saat mengupload langsung ke Google Cloud Storage, Anda membuat HTTP POST ke URL tertentu, yang akan kami jelaskan sebentar lagi. App Engine kemudian menggunakan layanan upload tertentu untuk menangani postingan dan menulis file ke Google Cloud Storage. Ketika penulisan file selesai, App Engine akan memberi tahu aplikasi Anda bahwa upload telah selesai. Karena aplikasi hanya dipanggil setelah selesai, Anda dapat menggunakan metode ini untuk mengupload file yang berukuran sangat besar, hingga batas maksimum 100 Terabyte saat ini.
Mengupload file secara langsung oleh pengguna ke Google Cloud Storage lebih cepat dan lebih hemat biaya daripada menulis ke Google Cloud Storage dari aplikasi App Engine Anda, karena hal ini menghabiskan jam kerja instance dan menimbulkan biaya. Selain itu, penulisan file tidak terjadi dalam permintaan ke aplikasi. Oleh karena itu, metode ini dikecualikan dari waktu tunggu permintaan yang akan berlaku dan mengizinkan upload file yang sangat besar.
Menerapkan upload file
Untuk menerapkan upload file pengguna:
Impor
CloudStorageTools
:Buat URL upload khusus aplikasi, menggunakan metode CloudStorageTools::createUploadUrl() dalam file
.php
Anda sebagai berikut:Lihat opsi
createUploadUrl
untuk mengetahui detail tentang opsi yang tersedia. Perhatikan bahwamy_bucket
akan menjadiYOUR_APP_ID
.REGION_ID.r.appspot.com
jika menggunakan bucket default.Perhatikan bahwa Anda harus mulai mengupload ke URL ini dalam waktu 10 menit setelah dibuat. Selain itu, Anda tidak dapat mengubah URL dengan cara apa pun - URL telah ditandatangani dan tanda tangan tersebut diperiksa sebelum upload Anda dimulai.
Gunakan URL ini sebagai tindakan untuk formulir yang Anda gunakan untuk menerima upload, misalnya:
Setelah file diupload, POST dibuat ke jalur yang ditentukan sebagai parameter
pertama ke createUploadUrl
; dalam contoh di atas, ini adalah
/upload_handler.php
. Runtime PHP membentuk $_FILES
super global yang benar, dan tmp_filename
merujuk pada nama file dari file yang baru diupload di Google Cloud Storage.
Misalnya, konten upload_handler.php adalah sebagai berikut:
var_dump($_FILES);
Mengupload file bernama hello.txt
dapat menghasilkan output berikut:
array(1) {
['uploaded_files']=>
array(5) {
['name']=> string(14) 'hello.txt'
['type']=> string(10) 'text/plain'
['tmp_name']=> string(73) 'gs://my_bucket/L2FwcHMtdXBsb2FkL2Jsb2JzL2IxNUFBVGNJNXNTd0VqR0tFSUtDRGxadGc'
['error']=> int(0)
['size']=> int(1452)
}
}
Setelah upload selesai, Anda dapat membaca file yang diupload menggunakan wrapper streaming gs://
. Gunakan move_uploaded_file
seperti biasa untuk
file lainnya yang diupload, misalnya:
Opsi createUploadUrl
Opsi createUploadUrl
yang valid ditampilkan dalam tabel berikut:
Opsi | Deskripsi |
---|---|
max_bytes_per_blob |
Bilangan bulat. Nilai default: unlimited . Nilai ukuran terbesar yang diizinkan untuk blob yang diupload. |
max_bytes_total |
Bilangan bulat. Nilai default: unlimited . Ukuran total semua blob yang diupload. |
gs_bucket_name |
String. Nama bucket Google Cloud Storage tempat blob akan diupload. Jika Anda tidak menentukan nilai, blob akan diupload ke bucket default aplikasi. |