Segmentos, objetos y LCAs
Un segmento es la ubicación de almacenamiento desde la que lees archivos y en la que escribes archivos. Siempre debes especificar un segmento al usar la biblioteca de cliente de App Engine para Cloud Storage. Tu proyecto puede acceder a varios contenedores. Ten en cuenta que la biblioteca de cliente no admite la creación de cubos.
Las listas de control de acceso (LCA) controlan el acceso a los segmentos y a los objetos que contienen. Tu proyecto y tu aplicación de App Engine se añaden automáticamente a la LCA que permite el acceso al segmento cuando creas un segmento en tu proyecto.
Ten en cuenta que la LCA que permite el acceso al segmento es distinta de las LCA que rigen los objetos de ese segmento. Por lo tanto, tu aplicación tiene privilegios de lectura y escritura en los segmentos para los que está activada, pero solo tiene derechos completos sobre los objetos que crea en el segmento. El acceso de tu aplicación a los objetos creados por otras aplicaciones o personas se limita a los derechos que el creador de los objetos haya concedido a tu aplicación.
Si se crea un objeto en el segmento sin una LCA definida explícitamente, se usará la LCA de objeto predeterminada que el propietario del segmento haya asignado al segmento. Si el propietario del segmento no ha especificado una LCA de objeto predeterminada, el valor predeterminado del objeto es public-read
, lo que significa que cualquier usuario que tenga acceso al segmento puede leer el objeto.
LCAs y la biblioteca de cliente
Una aplicación que use la biblioteca de cliente no puede cambiar la LCA del contenedor, pero sí puede especificar una LCA que controle el acceso a los objetos que cree. Los ajustes de LCA disponibles se describen en la documentación del método open.Modificar objetos de Cloud Storage
Una vez que creas un objeto en un contenedor, no puedes modificarlo ni añadirle contenido. En su lugar, debe sobrescribir el objeto con un objeto nuevo del mismo nombre que contenga los cambios que quiera.
Cloud Storage y subdirectorios
La biblioteca de cliente de App Engine para Cloud Storage te permite proporcionar delimitadores de subdirectorios al crear un objeto, pero no hay subdirectorios reales en Cloud Storage. En su lugar, un subdirectorio de Cloud Storage forma parte del nombre de archivo del objeto.
Por ejemplo, podrías pensar que al crear un objeto
somewhere/over/the/rainbow.mp3
se almacenaría el archivo rainbow.mp3
en el
subdirectorio somewhere/over/the/
. En su lugar, el nombre del objeto se define como somewhere/over/the/rainbow.mp3
.
Es importante entender este concepto al usar el filtro listbucket
.
Si el comportamiento de la lista anterior no es óptimo para ti, listbucket
tiene un modo de emulación de directorio opcional. Consulta listbucket para obtener más información.
Siguientes pasos
- Consulta la documentación de referencia de la API.
- Consulta cómo configurar Cloud Storage.