Membaca dan Menulis File

Di Lingkungan Standar PHP 5 Google App Engine, sistem file lokal tempat aplikasi Anda di-deploy tidak dapat ditulisi. Perilaku ini memastikan keamanan dan skalabilitas aplikasi Anda.

Namun, jika aplikasi Anda perlu menulis dan membaca file saat runtime, lingkungan standar PHP 5 akan menyediakan wrapper streaming Google Cloud Storage bawaan yang memungkinkan Anda untuk menggunakan banyak Fungsi sistem file PHP standar untuk membaca dan menulis file.

Ada dua cara untuk menulis file ke Google Cloud Storage:

  • Menulis file dari aplikasi
    • Penulisan file sederhana
    • Penulisan file yang di-streaming
  • Mengizinkan pengguna mengupload file ke Google Cloud Storage

Menulis file dari aplikasi Anda

Jika menulis file dari aplikasi, Anda dapat menulis seluruh file sekaligus, atau melakukan streaming penulisan file.

Wrapper aliran App Engine untuk Cloud Storage merupakan bawaan pada runtime, dan digunakan saat Anda memberikan nama file yang dimulai dengan gs://. Wrapper mengharuskan nama bucket atau objek file dalam format:

gs://bucket_name/desired_object_name

Penulisan file sederhana

Untuk menulis data ke Google Cloud Storage dari aplikasi, gunakan file_put_contents, menggunakan URL penyimpanan cloud yang valid. Contoh:

file_put_contents("gs://${my_bucket}/hello.txt", $newFileContent);

dengan my_bucket adalah bucket Google Cloud Storage yang dikonfigurasi dengan benar.

Atau, jika ingin menggunakan opsi streaming untuk memberikan opsi izin, caching, dan/atau metadata, Anda dapat menulis file sebagai berikut:

$options = ['gs' => ['Content-Type' => 'text/plain']];
$context = stream_context_create($options);
file_put_contents("gs://${my_bucket}/hello_options.txt", $newFileContent, 0, $context);

Penulisan file yang di-streaming

Atau, Anda dapat menggunakan fopen/fwrite untuk menulis data dalam mode streaming:

$fp = fopen("gs://${my_bucket}/hello_stream.txt", 'w');
fwrite($fp, $newFileContent);
fclose($fp);

Perhatikan bahwa saat Anda menggunakan streaming, data akan dipindahkan ke Google Cloud Storage dalam potongan yang lebih kecil. Anda tidak perlu mengetahui panjang total data yang akan ditulis di awal: panjang total data akan dihitung saat resource file ditutup:

Ini adalah cara dasar untuk menulis file. Untuk kasus penggunaan khusus dan pengelolaan file lanjutan lainnya, lihat topik yang tercantum di bagian Langkah berikutnya.

Menghapus file

Jika Anda ingin menghapus file itu sendiri, gunakan fungsi unlink() PHP.

Upload pengguna

Untuk mengetahui detail tentang opsi penulisan file ini, lihat Mengizinkan Pengguna untuk Mengupload File

Membaca file

Untuk informasi tentang membaca file dari Google Cloud Storage, lihat Menyediakan Akses Publik ke File

Penyiapan dan Persyaratan

Anda perlu mengaktifkan Google Cloud Storage dan membuat bucket. Lihat Penyiapan untuk detail selengkapnya.

Fungsi sistem file PHP 5 yang didukung

Banyak fungsi file PHP 5 yang umum digunakan didukung, begitu juga dengan informasi file dan fungsi direktori. Untuk mengetahui daftar lengkap fungsi PHP yang didukung, lihat Dukungan fungsi sistem file PHP 5.

Fitur yang diperluas yang disediakan oleh Cloud Storage Tools API

Wrapper streaming Google Cloud Storage memungkinkan Anda menggunakan panggilan sistem file PHP. Namun, ada beberapa fitur tambahan yang tersedia yang mungkin Anda perlukan untuk penggunaan Google Cloud Storage yang optimal. Fitur tambahan ini disediakan dalam Cloud Storage Tools API:

API ini menyediakan serangkaian fungsi yang mendukung penayangan file dan gambar, beserta utilitas berguna lainnya. Kami akan membahas beberapa di antaranya di halaman topik lainnya.

Apakah ada cara lain untuk membaca dan menulis file?

Aplikasi App Engine PHP 5 harus menggunakan wrapper streaming Cloud Storage untuk menulis file saat runtime. Namun, jika aplikasi perlu membaca file, dan file ini bersifat statis, Anda dapat memilih untuk membaca file statis yang diupload dengan aplikasi menggunakan fungsi sistem file PHP, seperti file_get_contents.

Contoh:

$fileContents = file_get_contents($filePath);

di mana jalur yang ditentukan harus merupakan jalur yang relatif terhadap skrip yang mengaksesnya.

Anda harus mengupload file atau beberapa file dalam subdirektori aplikasi saat men-deploy aplikasi ke App Engine, dan harus mengonfigurasi file app.yaml agar aplikasi Anda dapat mengakses file tersebut. Untuk detail selengkapnya, lihat Konfigurasi Aplikasi PHP 5 dengan app.yaml.

Dalam konfigurasi app.yaml, perhatikan bahwa jika Anda menggunakan file statis atau pengendali direktori (static_files atau static_dir), Anda harus menentukan application_readable yang ditetapkan ke true atau aplikasi Anda menang tidak dapat membaca file. Namun, jika file disajikan oleh pengendali script, hal ini tidak diperlukan, karena file ini secara default dapat dibaca oleh pengendali skrip.

Langkah berikutnya

Baca topik berikut untuk mengetahui detail tentang penggunaan Cloud Storage Tools API: