Lire et écrire des fichiers temporaires

Cloud Storage est la solution recommandée pour la lecture et l'écriture de fichiers dans App Engine. Toutefois, si votre application n'a besoin que d'écrire des fichiers temporaires, vous pouvez vous servir des méthodes PHP 7+ standards pour écrire des fichiers dans un répertoire nommé /tmp.

Tous les fichiers de ce répertoire sont stockés dans la mémoire RAM de l'instance. Par conséquent, le fait d'écrire dans /tmp occupe de la mémoire système. En outre, les fichiers du répertoire /tmp ne sont disponibles que pour l'instance d'application qui les a créés. En cas de suppression de l'instance, les fichiers temporaires sont également supprimés.

Si vous souhaitez écrire un fichier temporaire dans un espace de stockage permanent, créez-le avec la version tempnam() d'App Engine. Cette version de tempnam() renvoie un fichier temporaire en mémoire qui peut être écrit dans une solution de stockage permanent, telle que les buckets Cloud Storage.

Voici un exemple de création d'un fichier en mémoire avec tempnam(), puis d'écriture dans ce fichier à l'aide de file_put_contents() et fwrite() :

<?php
$dir = sys_get_temp_dir();
$tmp = tempnam($dir, "foo");
file_put_contents($tmp, "hello");
$f = fopen($tmp, "a");
fwrite($f, " world");
fclose($f);
echo file_get_contents($tmp);

Cet exemple génère le résultat suivant :

hello world