En el entorno estándar de PHP 5 de Google App Engine, el sistema de archivos local en el que se implementa tu aplicación no se puede escribir. De esta forma, se garantiza la seguridad y la escalabilidad de tu aplicación.
Sin embargo, si tu aplicación necesita escribir y leer archivos en tiempo de ejecución, el entorno estándar de PHP 5 proporciona un envoltorio de flujo de Google Cloud Storage integrado que te permite usar muchas de las funciones del sistema de archivos de PHP estándar para leer y escribir archivos.
Hay dos formas de escribir archivos en Google Cloud Storage:
- Escribir archivos desde tu aplicación
- Escritura de archivos sencilla
- Escritura de archivos en streaming
- Permitir que el usuario suba archivos a Google Cloud Storage
Escribir archivos desde tu aplicación
Si escribes archivos desde tu aplicación, puedes escribir todo el archivo a la vez o transmitir la escritura del archivo.
El envoltorio de flujo de App Engine para Cloud Storage está integrado en el tiempo de ejecución y se usa cuando se proporciona un nombre de archivo que empieza por gs://
. El envoltorio requiere que el nombre del segmento o del objeto de archivo tenga el siguiente formato:
gs://bucket_name/desired_object_name
Escritura de archivos sencilla
Para escribir datos en Google Cloud Storage desde tu aplicación, usa file_put_contents
con una URL de almacenamiento en la nube válida. Por ejemplo:
donde my_bucket
es un segmento de Google Cloud Storage correctamente configurado.
Si quieres usar opciones de flujo para proporcionar permisos, opciones de almacenamiento en caché o metadatos, puedes escribir el archivo de la siguiente manera:
Escritura de archivos en streaming
También puedes usar fopen
/fwrite
para escribir datos en un flujo continuo:
Ten en cuenta que, si usas la transmisión, los datos se enviarán a Google Cloud Storage en fragmentos más pequeños. No es necesario que sepas la longitud total de los datos que se van a escribir al principio, ya que se calculará cuando se cierre el recurso de archivo:
Estas son las formas básicas de escribir archivos. Para casos prácticos especiales y una gestión de archivos más avanzada, consulta los temas que se indican en la sección Dónde ir a continuación.
Eliminar archivos
Si quieres eliminar el archivo, usa la función unlink() de PHP.
Subidas de usuarios
Para obtener más información sobre esta opción de escritura de archivos, consulta Permitir que los usuarios suban archivos.
Leer archivos
Para obtener información sobre cómo leer archivos de Google Cloud Storage, consulta Proporcionar acceso público a archivos.
Configuración y requisitos
Debe activar Google Cloud Storage y crear un segmento. Consulta Configuración para obtener más información.
Funciones del sistema de archivos de PHP 5 admitidas
Se admiten muchas de las funciones de archivo de PHP 5 que se usan habitualmente, así como funciones de información de archivos y directorios. Para ver una lista completa de las funciones de PHP compatibles, consulta Compatibilidad con funciones del sistema de archivos de PHP 5.
Funciones ampliadas proporcionadas por la API Cloud Storage Tools
El envoltorio de flujo de Google Cloud Storage te permite usar llamadas del sistema de archivos de PHP. Sin embargo, hay funciones ampliadas disponibles que puedes necesitar para usar Google Cloud Storage de forma óptima. Estas funciones ampliadas se proporcionan en la API Cloud Storage Tools:
Esta API proporciona un conjunto de funciones que admiten el servicio de archivos e imágenes, así como otras utilidades útiles. Trataremos varios de estos temas en las otras páginas de temas.
¿Hay alguna otra forma de leer y escribir archivos?
Una aplicación de App Engine PHP 5 debe usar el envoltorio de flujo de Cloud Storage para escribir archivos en el tiempo de ejecución. Sin embargo, si una aplicación necesita leer archivos y estos son estáticos, puedes leer los archivos estáticos que se hayan subido con tu aplicación mediante funciones del sistema de archivos de PHP, como file_get_contents
.
Por ejemplo:
donde la ruta especificada debe ser una ruta relativa a la secuencia de comandos que accede a ellos.
Cuando despliegues tu aplicación en App Engine, debes subir el archivo o los archivos a un subdirectorio de la aplicación y configurar el archivo app.yaml
para que tu aplicación pueda acceder a ellos. Para obtener más información, consulta el artículo sobre la configuración de aplicaciones PHP 5 con app.yaml
.
En la configuración app.yaml
, ten en cuenta que, si usas un controlador de archivos o directorios estático (static_files
o static_dir
), debes especificar application_readable
como true para que tu aplicación pueda leer los archivos.
Sin embargo, si los archivos se sirven mediante un controlador script
, no es necesario, ya que los controladores de secuencias de comandos pueden leer estos archivos de forma predeterminada.
Dónde ir a continuación
Consulta los siguientes temas para obtener información sobre cómo usar la API Cloud Storage Tools:
- Configuración, instrucciones de configuración rápida.
- En Proporcionar acceso público a archivos se explica cómo permitir que los usuarios descarguen archivos a través del navegador.
- En Permitir que los usuarios suban archivos se explica cómo subir archivos directamente a través del navegador, sin pasar por tu aplicación.
- En Trabajar con archivos de imagen se muestran las formas óptimas de gestionar y publicar imágenes.
- Gestión avanzada de archivos, que abarca lo siguiente:
- Opciones de permisos, almacenamiento en caché y flujo de metadatos.
- Compatibilidad con funciones del sistema de archivos de PHP.
- Usa PHP
include
yrequire
. - Leer y escribir metadatos personalizados.
- Lecturas de archivos en caché.