La biblioteca cliente de App Engine para Cloud Storage proporciona las siguientes funciones:
Funciones
- cloudstorage.copy2() copia el archivo especificado en el nombre de archivo especificado nuevo, en el mismo depósito de Cloud Storage.
- cloudstorage.delete() borra el objeto especificado del depósito de Cloud Storage.
- cloudstorage.listbucket() enumera los objetos en el depósito de Cloud Storage.
- cloudstorage.open() abre un objeto existente en el depósito de Cloud Storage para leer o reemplazar, o crea un objeto nuevo, según el modo especificado.
- cloudstorage.stat() proporciona información de metadatos sobre el archivo, como tipo de contenido, tamaño, marca de tiempo, resumen de MD5 y encabezados de Cloud Storage.
Una vez que se invoca a cloudstorage.open()
para mostrar el objeto similar a un archivo que representa el objeto de Cloud Storage especificado, puedes usar las funciones de archivo estándar de Python, como write()
y close()
, a fin de escribir un objeto en el depósito de Cloud Storage o read()
para leer un objeto del depósito.
Clases
Funciones
- cloudstorage.copy2(src,dst,metadata=None, retry_params=None)
-
Copia el archivo especificado en el nuevo nombre de archivo especificado y, de manera predeterminada, también copia los metadatos. De manera opcional, puedes reemplazar los metadatos de la copia si proporcionas el parámetro
metadata
.Genera cloudstorage.NotFoundError si el objeto de Cloud Storage especificado no existe o cloudstorage.AuthorizationError si falla la autorización.
Argumentos
- src (obligatorio)
- El nombre completo del archivo de Cloud Storage para el objeto, en el formato
/bucket/object_name
. Debe ser un nombre de archivo completo y puede incluir el delimitador `/`. - dst (obligatorio)
- El nombre completo del archivo de Cloud Storage para la copia del objeto, en el formato
/bucket/object_name
. Debe ser un nombre de archivo completo y puede incluir el delimitador `/`. - metadata=None (opcional)
- Un diccionario de metadatos para esta copia, por ejemplo,
{'x-goog-meta-foo': 'bar'}
. Si suministras el parámetro de metadatos, no se copia ninguno de los metadatos originales en el archivo nuevo. Si no se proporcionan metadatos, (None
), se copian todos los metadatos del archivo de origen. - retry_params=None (opcional)
- Un objeto RetryParams en el que suministras cualquier cambio que deseas realizar en la configuración predeterminada del tiempo de espera y los reintentos para esta llamada.
Ejemplo
- Para copiar un archivo, pero agregando metadatos nuevos y luego ignorando el error si el archivo fuente no existe:
-
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)
-
Borra el archivo especificado del bucket de Cloud Storage.
Genera cloudstorage.NotFoundError si el objeto de Cloud Storage especificado no existe.
Argumentos
- filename (obligatorio)
- El nombre completo del archivo de Cloud Storage para el objeto, en 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 suministras cualquier cambio que deseas realizar en la configuración predeterminada del tiempo de espera y los reintentos para esta llamada.
Ejemplo
- Para borrar un archivo, pero ignorando el error cuando el archivo no existe:
-
import cloudstorage try: cloudstorage.delete(filename) except cloudstorage.NotFoundError: pass
- cloudstorage.listbucket(path_prefix,marker=None,max_keys=None,delimiter=None,retry_params=None)
- Muestra un objeto iterador del depósito. Este iterador muestra 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 obtenga los resultados.
Esta función funciona en dos modos diferentes según si usas el argumento
delimiter
o no:- Modo normal (predeterminado): Enumera todos los archivos en el bucket sin ningún concepto de jerarquía. (Cloud Storage no posee jerarquías de directorio reales).
- Modo de emulación de directorio: 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 mostrarán los objetos cuya ruta de acceso completa comience conpath_prefix
. - marker=None (opcional)
- String. Otro prefijo de ruta de acceso. Solo se mostrarán los objetos cuya ruta de acceso completa comienza lexicográficamente después de un marcador. El archivo usado como marcador no se muestra. Por ejemplo, si deseas que se enumeren todos los archivos a partir de
superduperfoo3.txt
, especifica el archivo inmediatamente anterior asuperduperfoo3.txt
, por ejemplo: Una forma de usar este parámetro es usarlo constat = cloudstorage.listbucket("/my_bucket/foo", marker='/my_bucket/foo/superduperfoo2.txt')
max_keys
para “desplazarse” por los nombres de archivo del depósito. - max_keys=None (opcional)
- Número entero. Especifica el número máximo de objetos que se deben mostrar. Úsalo si sabes cuántos objetos deseas. (De lo contrario, la biblioteca cliente de Cloud Storage almacena automáticamente en búferes y pagina todos los resultados). Se puede usar con
marker
para desplazarse por los nombres de archivo en un depósito.stats = cloudstorage.listbucket(bucket + '/foo', max_keys=page_size, marker=stat.filename)
- delimiter=None (opcional)
- String. Activa el modo de directorio. Puedes especificar uno o varios caracteres para usar como separador de directorios.
- retry_params=None (opcional)
- Un objeto RetryParams en el que suministras cualquier cambio que deseas realizar en la configuración predeterminada del tiempo de espera y los reintentos para esta llamada.
Valor del resultado
Muestra un iterador de objetos GCSFileStat para los archivos con coincidencia, ordenados por nombre de archivo. En el modo regular, los objetos
GCSFileStat
que se muestran tienen los siguientes datos:filename
etag
(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
, entonces, la única otra propiedad en el objeto esfilename
. Siis_dir
esFalse
, elGCSFileStat
también contiene todas las otras 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 lectura. En el modo de escrituraw
, si el archivo especificado existe, lo abre para reemplazarlo (el anexado de datos no se admite). Si el archivo no existe, se crea en el bucket especificado.Cuando termines de escribir, si deseas leer el archivo o almacenarlo en Cloud Storage, cierra el archivo con la función
close
. No es un error si no llamas aclose
, pero el archivo no será legible ni persistirá en Cloud Storage.Se genera el error:
- cloudstorage.NotFoundError Si está en modo de lectura y el objeto especificado no existe.
Argumentos
- filename (obligatorio)
- El archivo que se abrirá, en el formato
/bucket/object
. Por ejemplo,/my_bucket/lyrics/southamerica/list5.txt
. - mode (opcional)
- String. Especifica 'r' si deseas abrir un archivo para lectura (modo predeterminado). Especifica 'w' si deseas abrir un archivo existente para reemplazar o crear un archivo nuevo.
- content_type: (opcional)
- String. Solo se usa en el modo de escritura. Deberías especificar el tipo MIME del archivo (puedes especificar cualquier tipo MIME válido). Si no proporcionas este valor, Cloud Storage usa el tipo
binary/octet-stream
de forma predeterminada cuando entrega el objeto. - options: (opcional)
Diccionario. Solo se usa en el modo de escritura. Las opciones admitidas son
x-goog-acl
,x-goog-meta-
,cache-control
,content-disposition
ycontent-encoding
.Si no proporcionas una opción
x-goog-acl
, Cloud Storage usa la LCA predeterminada del depósito. Los valores válidos parax-goog-acl
se enumeran en la documentación de Cloud Storage de x-goog-acl.Puedes especificar metadatos de objeto personalizados mediante los 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. Solo se usa en el modo de lectura. Si no configuras este valor, se usa el tamaño del búfer predeterminado (recomendado). Cuando leas, deberías leer con
read_buffer_size
para obtener un rendimiento óptimo de la carga previa. - retry_params=None (opcional)
- Un objeto RetryParams en el que suministras cualquier cambio que deseas realizar en la configuración predeterminada del tiempo de espera y los reintentos para esta llamada.
Valor del resultado
Muestra un búfer de lectura o escritura que admite una interfaz similar a un archivo en la que puedes invocar funciones
read
,write
yclose
estándar de Python. Este búfer se debe cerrar una vez que terminas de leer o escribir. - cloudstorage.stat(filename,retry_params=None)
-
Muestra un objeto GCSFileStat que contiene metadatos de archivo.
Genera cloudstorage.NotFoundError si el objeto de Cloud Storage especificado no existe.
Argumentos
- filename (obligatorio)
- El archivo que se abrirá, en el formato
/bucket/object
. Por ejemplo,/my_bucket/lyrics/southamerica/list5.txt
- retry_params=None (opcional)
- Un objeto RetryParams en el que suministras cualquier cambio que deseas realizar en la configuración predeterminada del tiempo de espera y los reintentos para esta llamada.
Valor del resultado
Muestra un objeto GCSFileStat que contiene metadatos de archivo.