2014-05-18 9 views
5

herunterladen Ich versuche, ein Python-Programm zum Herunterladen von Bildern aus dem Service zu schreiben. Ich konnte jedoch keine Möglichkeit finden, Bilder mithilfe der API aus der Cloud herunterzuladen. In der Dokumentation, die hier gefunden werden kann:Openstack Python API: wie man Bild aus dem Blick mit dem Python api

http://docs.openstack.org/user-guide/content/sdk_manage_images.html

sie erklären, wie die Bilder hochladen, aber nicht, um sie herunterzuladen.

Der folgende Code zeigt, wie Bild-Objekt zu erhalten, aber ich weiß jetzt nicht, was mit diesem Objekt zu tun:

import novaclient.v1_1.client as nvclient 
name = "cirros" 
nova = nvclient.Client(...) 
image = nova.images.find(name=name) 

ist es eine Möglichkeit, die Image-Datei herunterzuladen und auf der Festplatte mit diesem speichern Objekt "Bild"?

Antwort

4

Ohne Blick Installation cli Sie Bild über HTTP-Aufruf herunterladen können, wie hier beschrieben: http://docs.openstack.org/developer/glance/glanceapi.html#retrieve-raw-image-data

Für die Python-Client Sie

img = client.images.get(IMAGE_ID) 

und rufen Sie dann verwenden können,

client.images.data(img) # or img.data() 

zu Generator abrufen, mit dem Sie auf Rohdaten des Bildes zugreifen können.

Voll Beispiel (Bild von Blick auf die Festplatte zu speichern):

img = client.images.find(name='cirros-0.3.2-x86_64-uec') 

file_name = "%s.img" % img.name 
image_file = open(file_name, 'w+') 

for chunk in img.data(): 
    image_file.write(chunk) 
2

Sie können dies mit Blick CLI tun mit Bild-Download-Befehl:

glance image-download [--file <FILE>] [--progress] <IMAGE> 

Sie haben Blick cli für diese installieren.

Je nachdem, welchen Cloud-Anbieter/Dienst Sie verwenden, ist diese Operation möglicherweise für normale Benutzer deaktiviert. Möglicherweise müssen Sie sich bei Ihrem Provider erkundigen.