2014-05-18 54 views
5

我想寫一個python程序,從服務一覽下載圖像下載圖像。但是,我找不到使用API​​從雲端下載圖像的方法。在這裏可以找到的文檔:的OpenStack API的Python:如何從一目瞭然使用Python API

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

他們解釋如何上傳圖片,但不能下載它們。

下面的代碼演示瞭如何獲取圖像對象,但我不現在做什麼與此對象:

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

有沒有什麼辦法來下載圖像文件,並使用此保存在磁盤上對象「形象」?

回答

4

無需安裝一目瞭然CLI中,您可以通過HTTP調用下載圖片如下所述: http://docs.openstack.org/developer/glance/glanceapi.html#retrieve-raw-image-data

對於Python客戶端可以使用

img = client.images.get(IMAGE_ID) 

,然後調用

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

到檢索生成器,通過它可以訪問圖像的原始數據。

(從一目瞭然磁盤保存圖像)全部例如:

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

你可以做到這一點使用一目瞭然CLI與圖像下載命令:

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

您必須安裝一目瞭然CLI這一點。

還取決於雲提供商/服務,您正在使用,此操作可用於普通用戶被禁用。您可能需要與您的提供商聯繫。