Свое облако на python

How to create cloud storage bucket with Python | GCP

Google provides Cloud Client Libraries for accessing Cloud APIs programmatically, google-cloud-storage is the client library for accessing Cloud storage services. In this tutorial we will see, how to create create cloud storage bucket and list objects of bucket with Python .

Pre-requisite for executing below code is to have a service account with Storage Admin role, refer How to create service account in GCPto create service account and downloading the json key.

Install Cloud storage client library
 pip install google-cloud-storage 
Import modules and authenticate to Google Cloud with downloaded service account json keys
 from google.cloud import storage import os # Provide path for service accounts keys for authentication os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = r"C:\Users\****\Desktop\keys.json" 
Instantiates a storage client and give any unique name for the bucket to be created
 # Instantiates a client storage_client = storage.Client() my_bucket_name = "[my-bucket-name]" # Replace [my-bucket-name] with actual bucket name 
Create new bucket
 bucket = storage_client.create_bucket(my_bucket_name) msg = f"Bucket with name has been created" print(msg) 
List contents of bucket

Upload few images or text files in the newly bucket from Cloud console, for this tutorial few images were uploaded in the newly create bucket.

 object_generator = storage_client.list_blobs(my_bucket_name) for i in object_generator: print(i) 
Example Output:
 <Blob: [my-bucket-name], flower.jpg, 1588604065075004> <Blob: [my-bucket-name], mountains.jpg, 1588604070602145> <Blob: [my-bucket-name], sample.jpg, 1588604081103677> 

Источник

Управление облаками в Python

Облачные вычисления стали популярными среди широких масс примерно полтора-два года назад, и огромную роль в этом сыграл сервис Amazon EC2. Постепенно активность обсуждений этой технологии только возрастала, появлялись сторонники и противники, считающие что это всего лишь очередное модное веяние и ничего больше; некоторые же стали экспериментировать и применять облачные вычисления для решения свох задач.

Читайте также:  Определение текущего времени php

Довольно долго у EC2 было не много альтернатив, поэтому мало кто задумывался о проблемах миграции с одного клауд провайдера на другой. Однако, в последний год стало появляться все больше и больше компаний, предоставляющих клауд-сервисы адекватного качества по приемлемой цене.

На данный момент EC2, пожалуй, до сих пор остается лидером, однако появилось еще несколько крупных игроков — думаю, такие имена как Rackspace и GoGrid на слуху у всех, кто хотя бы поверхностно интересуется темой. Помимо них на рынке сейчас активны еще не меньше десятка компаний, предлагающих подобные услуги.

Подобное разнообразие уже заставляет внимательнее относиться к вопросу выбора провайдера и задумываться о возможном плане миграции.

Зачем нужен libcloud?

Неотъемлемой частью клауд сервисов является наличие API, как правило RESTful или REST-like, который позволяет полностью контролировать клауд инфраструктуру. К сожалению, практически каждый провайдер создает свой API, несовместимый с уже существующими, что весьма неудобно, если вы решите перейти с одного сервиса на другой, и создает дополнительные сложности, если приходится поддерживать несколько разных сервисов одновременно.

Когда libcloud зарождался в компании Cloudkick (которую, кстати, совсем недавно купил Rackspace), цель была не только создать инструмент для работы с клаудами из Python, но и сформулировать видение того, каким должен (может) быть обобщенный интерфейс для работы с клаудами, как со стороны API сервисов, как и с клиентской стороны при работе с разными платформами. Например, параллельно с Python версией, развивается Java версия, принцип работы и концепции точно такие же.

Впрочем, не буду углубляться в философские аспекты, а продемонстрирую, что позволяет делать libcloud.

Приступаем к работе

Установка и настройка

Процесс установки вряд-ли покажется кому-нибудь новым:

Второй подготовительный этап — активировать API и получить ключ и пароль. Эта процедура отличается у различных клауд провайдеров и обычно описана у них в документации. Например, в случае ракспейса она выглядит так: зайти на manage.rackspacecloud.com, затем в меню Your Account -> API Access.

Терминология и интерфейс

В libcloud используется следующая терминология:

  • Нода — экземпляр одного виртуального сервера. У провайдеров обычно называется просто сервером
  • Размер ноды — физический размер ноды. Для разных провайдеров характеристики отличаются, обычно сюда включается размер оперативной памяти, количество ядер процессора, иногда размер дискового пространства
  • Образ ноды — образ операционной системы, которая используется для загрузки ноды

Над всеми вышеописанными объектами возможна операция list — получить актуальный список объектов. Для нод поддерживается больше операций: их можно создавать (create), удалять (destroy), а так же перегружать (reboot).

Просмотр доступных размеров и образов нод

Начнем с простого примера: подключимся к сервису и получим список всех образов с CentOS, а так же список всех возможных размеров нод:

#!/usr/bin/env python from libcloud.types import Provider from libcloud.providers import get_driver from secret import access_id, secret_key if __name__ == "__main__": Driver = get_driver(Provider.GOGRID) conn = Driver(access_id, secret_key) print "images: " for image in conn.list_images(): if "CentOS" in image.name: print " %s %s" % (image.id, image.name) print "sizes: " for size in conn.list_sizes(): print size 

Для запуска потребуется создать файл «secret.py» и объявить там переменные access_id и secret_key с нужным пользователем и паролем для доступа к API вашего провейдера. Обратите внимание на строку:

Здесь мы говорим, что хотим использовать драйвер для GoGrid. Для того, чтобы получить список всех поддерживаемых провайдеров, в шелле нужно выполнить следующую команду:

Создание и удаление нод

Рассмотрим пример создания и удаления ноды. Для создания нам нужно определиться с основными параметрами ноды, такими как имя, размер и образ. В качестве образа опять же выберем первый образ, содержащий в имени CentOS, и возьмем первый попавшийся размер.

#!/usr/bin/env python from libcloud.types import Provider from libcloud.providers import get_driver from secret import access_id, secret_key if __name__ == "__main__": Driver = get_driver(Provider.GOGRID) conn = Driver(access_id, secret_key) image = [image for image in conn.list_images() if "CentOS" in image.name][0] size = conn.list_sizes()[0] new_node = conn.create_node(name='mynode', image=image, size=size) print "node created: ", new_node new_node.destroy() 
Заключение

Как видим, тут тоже все довольно просто и прозрачно; и двумя коротенькими скриптами удалось покрыть почти весь общий интерфейс. Конечно же, функционал libcloud’а на этом не ограничивается, и я не ставлю перед собой задачу составить подробное руководство по использованию, а лишь заинтересовать тех, кто только начинает работать с клаудами и, в особенности, тех людей, которые используют правайдер-специфичные библиотеки.

У более опытных пользователей облаков наверняка возникнет ощущение, что описанного функционала недостаточно. Да, в большинстве случаев действительно требуется использовать нечто большее, и, понятно, что все провайдер-специфичные вещи невозможно покрыть единым интерфейсом.

На этот случай libcloud поддерживает так называемые ‘extra’ методы в драйверах провайдеров, которые позволяют, например, создавать пары ssh ключей, создавать свои собственные образы нод и т.д. По моим наблюдениям, драйверы популярных провайдеров довольно хорошо покрывают весь функционал и оперативно обновляются. Информацию о том, что поддерживает каждый из драйверов, можно найти в документации API самого libcloud.

Надеюсь, libcloud упростит жизнь тем, кто работает с облаками, а моя статья поможет быстро сориентироваться в проекте.

Источник

Русские Блоги

Супер просто! Создайте персональный «облачный диск» на основе Python

1. Введение

Когда мы хотим загрузить файлы с локального на облачный сервер, наиболее часто используемыми являются pscp Подождите, пока появятся инструменты, но неизбежно писать несколько повторяющихся кодов для каждой загрузки.

И тот, который я недавно обнаружил, основан на Python Инструмент updog , Может помочь нам создать облачный дисковый сервис на сервере, чтобы мы могли выгружать и скачивать файлы через веб-интерфейс, что очень удобно.

самое главное, Очень особенный и очень простой!

Давайте всех учить updog Конкретный способ использования.

2 Используйте Updog

Автор привык к putty Чтобы подключиться к облачному серверу, как показано на рисунке 1 (IP-адрес и другая информация были закодированы), мы авторизуемся и заходим на страницу:

Рисунок 1

потому как updog да Python Сторонний пакет, тогда мы напрямую используем pip3 install updog Установить updog , Перед установкой убедитесь, что сервер установлен Python 3.X версия:

фигура 2

Тогда мы можем напрямую использовать updog Чтобы запустить службу, передайте параметры для запуска службы в следующем формате:

updog -d DIRECTORY -p PORT --password PASSWORD 

Где параметры d Указывает корневой каталог открытой службы, то есть после открытия службы служба доступа не может просматривать каталог на том же уровне или выше, и по умолчанию используется текущий каталог;

параметр p Указывает порт, открытый службой, по умолчанию — 9090;

параметр password Означает пароль, используйтеHTTP basic authenticationДля защиты паролем ни имени пользователя, ни пароля по умолчанию, то есть прямой доступ, конечно, делать не рекомендуется.

Например, ниже мы сначала переключаемся в корневой каталог, а затем создаем имя updog Папку и открыть в этой папке updog служба:

cd / mkdir updog cd updog updog -p 666 --password UPDOG 

изображение 3

Таким образом, мы подключены к нашему облачному серверу. updog Обслуживание через ip адрес: 666 Чтобы получить доступ к услуге:

Рисунок 4

Вы можете видеть, что нам предлагается ввести пароль в это время, мы не заполняем имя пользователя, вводим пароль UPDOG Войти в службу:

Рисунок 5

Вы можете видеть, что на этой странице мы можем загружать и скачивать файлы по желанию (но не изменять файлы и должны работать на сервере).

Но тогда возникает проблема, когда мы закрываем putty , Только что открылся updog Служба немедленно останавливается, и к ней нельзя получить доступ в обычном режиме. На данный момент нам нужно только изменить команду для запуска службы, чтобы:

nohup updog -p 666 --password UPDOG & 

В настоящее время наш сервис зависает в фоновом режиме и не будет следовать putty Закрывается и останавливается:

Рисунок 6

И сервер может открывать несколько разных конфигураций updog Сервис очень удобный.

А если вы хотите закрыть службу, которая ранее была приостановлена ​​в фоновом режиме, вы можете передать fuser -v -n номер порта TCP Чтобы найти соответствующий идентификатор программы, а затем используйте kill -s 9 идентификатор программы Чтобы закрыть указанную службу:

Рисунок 7

Выше представлено все содержание статьи. Если есть опечатки, укажите на них!

Еще интересные и полезные статьи

Приглашаем подписаться на официальный аккаунт, учиться и расти вместе 。

. Отсканируйте приведенный выше QR-код, чтобы следовать

Все люди, которые нажимают кнопку «Смотреть», выглядят лучше!

Источник

Оцените статью