我目前正在尝试列出我在Google计算项目中拥有的所有磁盘和图片:
compute = googleapiclient.discovery.build('compute','v1')
resp = compute.instances().list(project=PROJECT_NAME).execute()
items = resp["items"]
# do something with items...
while "nextPageToken" in resp:
resp = compute.instances().list(project=PROJECT_NAME, pageToken=resp["nextPageToken"])
items = resp["items"]
# do something with items...
我知道这不会归还我拥有的所有图像。我查看了输出,它丢失了几十个。
我试过打印:
print(list(resp.keys()))
我只得到这些钥匙:
[u'items', u'kind', u'id', u'selfLink']
这意味着nextPageToken
永远不会给我。
答案 0 :(得分:0)
compute.instances.list是区域性的。您可能只获得一个区域的结果。试试gcloud中的等价物:
gcloud compute instances list --log-http 2>&1 | grep ^GET
您将看到区域列表请求,然后是每个区域的实例列表请求。 gcloud / Cloud SDK有一个区域(和区域)聚合器模块,它封装了这个模块,并在每个区域内处理pageToken。