La biblioteca de cliente de App Engine para Cloud Storage proporciona las siguientes funciones:
Funciones
- cloudstorage.copy2() copia el archivo especificado en el nuevo nombre de archivo especificado en el mismo segmento de Cloud Storage.
- cloudstorage.delete() elimina el objeto especificado del segmento de Cloud Storage.
- cloudstorage.listbucket() muestra los objetos del segmento de Cloud Storage.
- cloudstorage.open() abre un objeto en el segmento de Cloud Storage para leerlo o sobrescribirlo, o bien crea un objeto, en función del modo especificado.
- cloudstorage.stat() proporciona información de metadatos sobre el archivo, como el tipo de contenido, el tamaño, la marca de tiempo, el digest MD5 y los encabezados de Cloud Storage.
Una vez que se invoca cloudstorage.open()
para devolver el objeto similar a un archivo que representa el objeto de Cloud Storage especificado, puede usar las funciones de archivo estándar de Python, como write()
y close()
, para escribir un objeto en el segmento de Cloud Storage, o read()
para leer un objeto del segmento de Cloud Storage.
Clases
Functions
- cloudstorage.copy2 (src, dst, metadata=None, retry_params=None)
-
Copia el archivo especificado en el nuevo nombre de archivo especificado. De forma predeterminada, también se copian los metadatos. Si quieres, puedes sobrescribir los metadatos de la copia proporcionando el parámetro opcional
metadata
.Genera cloudstorage.NotFoundError si el objeto de Cloud Storage especificado no existe o cloudstorage.AuthorizationError si se produce un error de autorización.
Argumentos
- src (obligatorio)
- Nombre de archivo completo de Cloud Storage del objeto, con el formato
/bucket/object_name
. Debe ser un nombre de archivo completo y puede incluir el delimitador `/`. - dst (obligatorio)
- Nombre de archivo completo de Cloud Storage de la copia del objeto, con el formato
/bucket/object_name
. Debe ser un nombre de archivo completo y puede incluir el delimitador `/`. - metadata= None (Opcional)
- Un diccionario de metadatos de esta copia. Por ejemplo,
{'x-goog-meta-foo': 'bar'}
. Si proporcionas el parámetro de metadatos, ninguno de los metadatos originales se copiará en el nuevo archivo. Si no se proporcionan metadatos (None
), se copiarán todos los metadatos del archivo de origen. - retry_params= None (opcional)
- Un objeto RetryParams en el que se proporcionan los cambios que quieras hacer en los ajustes predeterminados de tiempo de espera y reintentos de esta llamada.
Ejemplo
- Para copiar un archivo, añadir metadatos nuevos e ignorar el error si el archivo de origen no existe, haz lo siguiente:
-
import cloudstorage try: cloudstorage.copy2('/my_bucket/README', '/my_bucket/README2', metadata={'x-goog-meta-zzzzz': 'zzzzz'}) except cloudstorage.NotFoundError: pass
- cloudstorage.delete (filename, retry_params=None)
-
Elimina el archivo especificado del segmento de Cloud Storage.
Genera cloudstorage.NotFoundError si el objeto de Cloud Storage especificado no existe.
Argumentos
- filename (obligatorio)
- Nombre de archivo completo de Cloud Storage del objeto, con el formato
/bucket/object_name
. Debe ser un nombre de archivo completo y puede incluir el delimitador `/`. - retry_params= None (opcional)
- Un objeto RetryParams en el que se proporcionan los cambios que quieras hacer en los ajustes predeterminados de tiempo de espera y reintentos de esta llamada.
Ejemplo
- Para eliminar un archivo, pero ignorar el error cuando el archivo no exista:
-
import cloudstorage try: cloudstorage.delete(filename) except cloudstorage.NotFoundError: pass
- cloudstorage.listbucket (path_prefix, marker=None, max_keys=None, delimiter=None, retry_params=None)
- devuelve un objeto iterador de contenedor. Este iterador devuelve una lista ordenada de objetos que coinciden con todos los filtros. Ten en cuenta que esta función es asíncrona. No se bloquea a menos que se llame al iterador
antes de que el iterador obtenga resultados.
Esta función opera de dos formas distintas en función de si usas el argumento
delimiter
o no:- Modo normal (predeterminado): muestra todos los archivos del segmento sin ningún concepto de jerarquía. Cloud Storage no tiene jerarquías de directorios reales.
- Modo de emulación de directorios: si especificas el argumento
delimiter
, se usa como separador de ruta para emular una jerarquía de directorios.
Argumentos
- path_prefix (Obligatorio)
- Una ruta de Cloud Storage con el formato
/bucket
o/bucket/prefix
, por ejemplo,/bucket/foo/2001
. Solo se devolverán los objetos cuya ruta completa empiece porpath_prefix
. - marker= None (Opcional)
- Cadena. Otro prefijo de ruta. Solo se devolverán los objetos cuyo fullpath empiece
lexicográficamente después del marcador (exclusivamente). No se devuelve el archivo usado como `marker`. Por ejemplo, si quieres que se muestren todos los archivos que empiezan por
superduperfoo3.txt
, especifica el archivo que va inmediatamente antes desuperduperfoo3.txt
, por ejemplo: Una forma de usar este parámetro es combinarlo constat = cloudstorage.listbucket("/my_bucket/foo", marker='/my_bucket/foo/superduperfoo2.txt')
max_keys
para desplazarse por los nombres de los archivos del segmento. - max_keys= None (Opcional)
- Número entero. Especifica el número máximo de objetos que se devolverán. Úsalo si sabes cuántos objetos quieres. De lo contrario, la biblioteca de cliente de Cloud Storage almacenará en búfer y paginará automáticamente todos los resultados. Se puede usar con
marker
para desplazarse por los nombres de archivo de un contenedor.stats = cloudstorage.listbucket(bucket + '/foo', max_keys=page_size, marker=stat.filename)
- delimiter= None (Opcional)
- Cadena. Activa el modo de directorio. Puedes especificar uno o varios caracteres que se usarán como separador de directorios.
- retry_params= None (opcional)
- Un objeto RetryParams en el que se proporcionan los cambios que quieras hacer en los ajustes predeterminados de tiempo de espera y reintentos de esta llamada.
Valor del resultado
Devuelve un iterador de objetos GCSFileStat sobre los archivos coincidentes, ordenados por nombre de archivo. En el modo normal, los objetos
GCSFileStat
devueltos tienen los siguientes datos:filename
etag
(la representación hexadecimal del hash MD5 del contenido del archivo)st_size
(longitud del contenido de los encabezados)st_ctime
is_dir
Nota: Si la propiedad
is_dir
del objetoGCSFileStat
esTrue
, la única propiedad que puede tener el objeto esfilename
. Siis_dir
esFalse
,GCSFileStat
también contiene todas las demás propiedades. - cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)
-
En el modo de lectura (
r
), se abre el objeto de Cloud Storage especificado para leerlo. En el modo de escrituraw
, si el archivo especificado existe, se abre para sobrescribirlo (no se admite la opción de añadir contenido). Si el archivo no existe, se crea en el segmento especificado.Cuando termines de escribir, si quieres leer el archivo o almacenarlo en Cloud Storage, cierra el archivo con la función
close
. No se trata de un error si no llamas aclose
, pero el archivo no se podrá leer ni conservar en Cloud Storage.Aumentos:
- cloudstorage.NotFoundError si está en modo de lectura y el objeto especificado no existe.
Argumentos
- filename (obligatorio)
- El archivo que se va a abrir, en el formato
/bucket/object
. Por ejemplo,/my_bucket/lyrics/southamerica/list5.txt
. - mode (Opcional)
- Cadena. Especifica "r" para abrir un archivo para lectura (opción predeterminada). Especifica "w" para abrir un archivo que ya tengas y sobrescribirlo, o para crear un archivo.
- content_type: (opcional)
- Cadena. Se usa solo en el modo de escritura. Debes especificar el tipo MIME del archivo (puedes especificar cualquier tipo MIME válido). Si no proporciona este valor, Cloud Storage usará el tipo
binary/octet-stream
de forma predeterminada cuando sirva el objeto. - Opciones: (opcional)
Dict. Se usa solo en el modo de escritura. Las opciones admitidas son
x-goog-acl
,x-goog-meta-
,cache-control
,content-disposition
ycontent-encoding
.Si no proporcionas la opción
x-goog-acl
, Cloud Storage usará la LCA predeterminada del segmento. Los valores válidos dex-goog-acl
se indican en la documentación de Cloud Storage sobre x-goog-acl.Puede especificar metadatos de objeto personalizados mediante encabezados x-goog-meta-. Por ejemplo:
gcs_file = cloudstorage.open(filename, 'w', content_type='text/plain', options={'x-goog-acl': 'private','x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'})
- read_buffer_size: (opcional)
- Número entero. Se usa solo en el modo de lectura. Si no define este valor, se usará el tamaño de búfer predeterminado (recomendado). Cuando leas, debes hacerlo por
read_buffer_size
para que el prefetch funcione de forma óptima. - retry_params= None (opcional)
- Un objeto RetryParams en el que se proporcionan los cambios que quieras hacer en los ajustes predeterminados de tiempo de espera y reintentos de esta llamada.
Valor del resultado
Devuelve un búfer de lectura o escritura que admite una interfaz similar a un archivo en la que puedes invocar las funciones estándar de Python
read
,write
yclose
. Este búfer debe cerrarse después de terminar de leer o escribir. - cloudstorage.stat(filename, retry_params=None)
-
Devuelve un objeto GCSFileStat que contiene metadatos del archivo.
Genera cloudstorage.NotFoundError si el objeto de Cloud Storage especificado no existe.
Argumentos
- filename (obligatorio)
- El archivo que se va a abrir, en el formato
/bucket/object
. Por ejemplo,/my_bucket/lyrics/southamerica/list5.txt
- retry_params= None (opcional)
- Un objeto RetryParams en el que se proporcionan los cambios que quieras hacer en los ajustes predeterminados de tiempo de espera y reintentos de esta llamada.
Valor del resultado
Devuelve un objeto GCSFileStat que contiene metadatos del archivo.