Google Cloud Storage Gestión de cubos

Google Cloud Storage (GCS) es una oferta de almacenamiento de objetos muy simple y potente de Google como parte de su Google Cloud Platform (GCP). Proporciona a los desarrolladores una solución de almacenamiento altamente duradera, escalable, consistente y disponible, y es la misma tecnología que Google utiliza para potenciar su propio almacenamiento de objetos.. 

Es facturable con un paga por lo que usas modelo, y GCP viene con un período de prueba de 60 días, por lo que es gratis probar si se ajusta a las necesidades de su organización. GCS tiene diferentes niveles de servicio (también denominados clases de almacenamiento) que se pueden elegir según sea necesario (la discusión detallada de estos está fuera del alcance de este tutorial). GCS se puede usar para una variedad de propósitos, como servir contenido de sitios web estáticos / dinámicos, almacenar archivos de aplicaciones específicos del usuario, recuperación ante desastres o hacer que los objetos de datos grandes se puedan descargar a los usuarios.

Quienes hayan trabajado en GCP sabrán que todo en GCP gira en torno a proyectos. Cada proyecto puede tener muchos cubos En torno a la cual se estructura la arquitectura de Google Cloud Storage. Los cubos son los contenedores básicos en GCS que contienen los datos almacenados. Estos se utilizan como bloques básicos para organizar sus datos y parecen carpetas en un sistema operativo, pero no pueden anidarse. 

Cada grupo puede contener cualquier cantidad de objetos, que pueden ser carpetas y / o archivos. A un grupo se le asigna una clase de almacenamiento y una ubicación geográfica cuando se crea. Estas configuraciones se pueden especificar al crear el grupo, pero no se pueden cambiar más adelante.

Los cubos tienen convenciones de nomenclatura específicas que deben seguirse estrictamente, de lo contrario, GCP no le permitirá crear un compartimiento. Los nombres de los cubos son únicos a nivel mundial, por lo que deben seleccionarse de una manera que evite conflictos. Sin embargo, un nombre usado por un cubo eliminado puede ser reutilizado. 

Además, el nombre no se puede cambiar una vez que se ha asignado a un grupo. La única solución si desea cambiarlo es crear un nuevo grupo con el nombre deseado, mover el contenido del grupo anterior al nuevo y luego eliminar el grupo anterior..

En este tutorial, cubriré cómo administrar los depósitos desde la Consola de Google Cloud. A esto le sigue una secuencia de comandos de Python en la que demostraré que realiza las mismas operaciones mediante programación..

Utilizando Google Cloud Console

Primero, veamos cómo administrar las cubetas utilizando la interfaz de usuario web proporcionada por GCP, conocida como Google Cloud Console.. 

Abra el navegador de almacenamiento en un navegador web de su elección. Si es usuario por primera vez, primero se le pedirá que cree un proyecto. Además, se mostrará una opción para inscribirse en una prueba gratuita. Continúe con el registro de prueba gratuito, de lo contrario no podrá crear un nuevo grupo usted mismo. De forma predeterminada, GCP solo proporciona un grupo gratuito por instancia de App Engine. 

Una vez hecho esto con todos estos procesos formales, navegar a esta página debería abrir la página que se muestra a continuación.

Para crear un nuevo cubo, haga clic en el Crear cubo botón resaltado arriba. Cree un cubo rellenando el nombre deseado como se muestra a continuación. El nombre debe seguir las convenciones de nomenclatura del cubo..

Una vez que haya creado un cubo, el navegador GCS lo incluirá. Los cubos se pueden eliminar seleccionándolos de la lista y haciendo clic en el botón Eliminar.

Al hacer clic en el botón de actualización se rellenará la interfaz de usuario con cualquier cambio en la lista de grupos sin actualizar toda la página.

Gestionando los cubos programáticamente

Primero, creemos una instancia de Google Compute Engine ya que permitirá una demostración rápida de los conceptos específicos en lugar de tratar con pasos de autenticación adicionales en las máquinas locales. Para crear una instancia GCE, abra el enlace y haga clic en el Crear instancia botón como se muestra a continuación.

Aparecerá un formulario solicitando detalles relevantes, que se pueden completar a su conveniencia. Una vez que se crea la instancia de GCE, abra el cliente SSH como se muestra a continuación, que de forma predeterminada se abre en una nueva ventana del navegador.

La pantalla del cliente SSH se verá como se muestra a continuación. Todas las operaciones posteriores en este tutorial se realizarán directamente en el propio cliente SSH..

Escribir un guión en Python

A continuación se muestran los comandos que debe ejecutar para configurar el servidor recién creado para un entorno de desarrollo de Python.

$ sudo apt-get update $ sudo apt-get install python-dev python-setuptools $ sudo easy_install pip 

A continuación se muestra la dependencia que se debe instalar para escribir este script.

$ sudo pip instalar google-api-python-client

En los sistemas de producción, no es recomendable instalar bibliotecas usando "sudo". Por favor, siga las mejores prácticas de Python virtualenv para esto..

gcs_bucket.py

importar sys desde pprint importar pprint desde googleapiclient importar descubrimiento desde googleapiclient importar http desde oauth2client.client importar GoogleCredentials def create_service (): credentials = GoogleCredentials.get_application_default () return discovery.build ('storage', 'v1', credentials = cyproveer) list_buckets (proyecto): service = create_service () res = service.buckets (). list (project = project) .execute () pprint (res) def create_bucket (project, bucket_name): service = create_service () res = service.buckets () .insert (project = project, body = "name": bucket_name) .execute () pprint (res) def delete_bucket (bucket_name): service = create_service () res = service.buckets (). delete (bucket = bucket_name) .execute () pprint (res) def get_bucket (bucket_name): service = create_service () res = service.buckets (). get (bucket = bucket_name) .execute () pprint (res) def print_help (): print " "" Uso: python gcs_bucket.py  El comando puede ser: ayuda: imprime esta lista de ayuda: enumera todos los grupos en la creación del proyecto específico: cree el nombre del grupo proporcionado en la eliminación del proyecto especificado: elimine el nombre del grupo proporcionado y obtenga: obtenga detalles del nombre del grupo proporcionado "" "si __name__ = = "__main__": si len (sys.argv) < 2 or sys.argv[1] == "help" or \ sys.argv[1] not in ['list', 'create', 'delete', 'get']: print_help() sys.exit() if sys.argv[1] == 'list': if len(sys.argv) == 3: list_buckets(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'create': if len(sys.argv) == 4: create_bucket(sys.argv[2], sys.argv[3]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'delete': if len(sys.argv) == 3: delete_bucket(sys.argv[2]) sys.exit() else: print_help() sys.exit() if sys.argv[1] == 'get': if len(sys.argv) == 3: get_bucket(sys.argv[2]) sys.exit() else: print_help() sys.exit()

El script de Python anterior muestra las principales operaciones que se pueden realizar en un contenedor. Éstos incluyen:

  • Creación de un nuevo cubo en un proyecto.
  • Listado de todos los cubos en un proyecto.
  • obteniendo detalles de un cubo específico
  • borrando un cubo específico

Veamos cómo se ven estas operaciones cuando se ejecuta el script..

$ python gcs_bucket.py Uso: python gcs_bucket.py  El comando puede ser: ayuda: imprime esta lista de ayuda: muestra una lista de todos los grupos en la creación del proyecto específico: cree el nombre del grupo proporcionado en la eliminación del proyecto especificado: elimine el nombre del grupo proporcionado y obtenga: obtenga detalles del nombre del grupo proporcionado $ python gcs_bucket.py lista tutsplus-demo u'items ': [u'etag': u'CAE = ', u'id': u'tutsplus-demo.appspot.com ', u'kind': u'storage # bucket ', u'location ': u'US', u'metageneration ': u'1', u'name ': u'tutsplus-demo.appspot.com', u'projectNumber ': u'1234567890', u'selfLink ' : u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo.appspot.com ', u'storageClass': u'STANDARD ', u'timeCreated': u'2016-10-05T15 : 30: 52.237Z ', u'updated': u'2016-10-05T15: 30: 52.237Z '], u'kind': u'storage # buckets ' $ python gcs_bucket.py crear tutsplus-demo tutsplus -demo-test u'etag ': u'CAE =', u'id ': u'tutsplus-demo-test', u'kind ': u'storage # bucket', u'location ': u'US ', u'metageneration': u'1 ', u'name': u'tutsplus-demo-test ', u'projectNumber': u'1234567890 ', u'selfLink': u'https: //www.goog leapis.com/storage/v1/b/tutsplus-demo-test ', u'storageClass': u'STANDARD ', u'timeCreated': u'2016-10-07T05: 55: 29.638Z ', u'updated' : u'2016-10-07T05: 55: 29.638Z ' $ python gcs_bucket.py obtener tutsplus-demo-test u'etag': u'CAE = ', u'id': u'tutsplus-demo-test ', u'kind': u'storage # bucket ', u'location': u'US ', u'metageneration': u'1 ', u'name': u'tutsplus-demo-test ', u' projectNumber ': u'1234567890', u'selfLink ': u'https: //www.googleapis.com/storage/v1/b/tutsplus-demo-test', u'storageClass ': u'STANDARD', u ' timeCreated ': u'2016-10-07T05: 55: 29.638Z', u'updated ': u'2016-10-07T05: 55: 29.638Z' $ python gcs_bucket.py eliminar tutsplus-demo-test "

Conclusión

En este tutorial, vio cómo administrar los depósitos en Google Cloud Storage. Esto también fue acompañado por una pequeña introducción para crear una instancia de Google Compute Engine y usarla a través de un cliente SSH.

En el siguiente tutorial, cubriré cómo administrar objetos, es decir, carpetas y archivos dentro de un cubo.