按照这个文档http://docs.qiniu.com/api/v6/bucket-stat.html查询七牛bucket空间使用情况,
按文档调用接口stat/select/space?bucket=&from=&to=&p=时,
提示参数错误 {u'error': u'invalid show type'}或{u'error': u'invalid argument'},请问是什么地方出问题了?代码如下:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import requests
import hmac
import logging
from urlparse import urlparse
from hashlib import sha1
from base64 import urlsafe_b64encode
from qiniu.auth.digest import Mac
AK = ""
SK = ""
class Bucket(object):
def __init__(self, accessKey, secretKey):
self.mac = Mac(accessKey, secretKey)
self.host = "http://api.qiniu.com"
def getAccessToken(self, url, body, contentType):
return self.mac.sign_request(url, body, contentType)
def getAuthorization(self, accessToken):
return "QBox %s" % accessToken
def query(self, url):
accessToken = self.getAccessToken(url, "", "")
auth = self.getAuthorization(accessToken)
headers = {"Authorization": auth}
try:
res = requests.get(url, headers=headers)
except Exception, e:
logging.error(e)
return None
return res.json()
def statByMonth(self, bucket, month):
query = "/stat/info?bucket=%s&month=%s" % (bucket, month)
url = self.host + query
return self.query(url)
def statSpace(self, bucket, start, to, p):
query = "/stat/select/space?bucket=%s&from=%s&to=%s&p=%s"
query = query % (bucket, start, to, p)
url = self.host + query
return self.query(url)
if __name__ == "__main__":
bucket = "testbucket"
b = Bucket(AK, SK)
month = "201501"
print b.statByMonth(bucket, month)
start = "20150129"
to = "20150130"
p = "5min"
print b.statSpace(bucket, start, to, p)
经过确认,目前已经不提供5min为粒度的用量查询接口了,你可以修改粒度为day或者month来查询,都是没有问题的,你的代码能够跑通,另外建议你这边将sdk的版本更新到7.x版本,新版本的python-sdk虽然接口规格改动比较大,但是接口更加规范和全面。