Depósitos, objetos y LCA
Un bucket es la ubicación de almacenamiento desde donde lees archivos y los escribes. Siempre debes especificar un bucket cuando usas la biblioteca cliente de App Engine para Cloud Storage. Tu proyecto tiene acceso a múltiples depósitos. Ten en cuenta que la biblioteca cliente no admite la creación de depósitos.
Las listas de control de acceso (LCA) controlan el acceso a los depósitos y los objetos que estos contienen. Tu proyecto y tu aplicación de App Engine se agregan automáticamente a la LCA que permite el acceso al bucket cuando creas un bucket en tu proyecto.
Ten en cuenta que la LCA que permite el acceso al bucket es distinta de la posible multiplicidad de LCA que rigen los objetos de ese bucket. Por lo tanto, tu app tiene privilegios de lectura y escritura para los bucket s respecto de los que está activada, pero solo tiene derechos totales sobre los objetos que crea en el bucket. El acceso de tu app a los objetos creados por otras apps o personas se limita a los derechos que le otorgue el creador de los objetos.
Si se crea un objeto en el bucket sin una LCA definida para él de forma explícita, usa la LCA de objeto predeterminada asignada al bucket por su propietario. Si el propietario del bucket no especificó una LCA de objeto predeterminada, el valor predeterminado es public-read
, lo que significa que cualquier persona con acceso al bucket puede leer el objeto.
Las LCA y la biblioteca cliente
Una aplicación que usa la biblioteca cliente no puede cambiar la LCA del bucket, pero puede especificar una LCA que controle el acceso a los objetos que crea. La configuración de LCA disponible se describe en la documentación sobre el método open.Cómo modificar objetos de Cloud Storage
Una vez que creas un objeto en un bucket, no puedes incorporarle cambios ni adjuntarle ningún elemento. Para modificarlo, debes reemplazar el objeto por uno nuevo del mismo nombre que incluya los cambios deseados.
Cloud Storage y subdirectorios
La biblioteca cliente de App Engine para Cloud Storage te permite suministrar delimitadores de subdirectorios cuando creas un objeto, aunque no hay subdirectorios verdaderos en Cloud Storage. En Cloud Storage, un subdirectorio es una parte del nombre de archivo del objeto.
Por ejemplo, supongamos que cuando creas un objeto somewhere/over/the/rainbow.mp3
, se almacenará el archivo rainbow.mp3
en el subdirectorio somewhere/over/the/
. Sin embargo, el nombre del objeto se establece como somewhere/over/the/rainbow.mp3
.
Es importante tener este concepto en mente cuando se usa el filtro listbucket
.
Si el comportamiento de la lista anterior no te resulta óptimo, listbucket
tiene un modo de emulación de directorio opcional. Consulta listbucket para obtener más información.
¿Qué sigue?
- Visita la documentación de referencia de la API.
- Obtén información sobre cómo configurar Cloud Storage.