upyun / python-sdk

UPYUN Python SDK
117 stars 29 forks source link

usage BUG #9

Closed kehr closed 10 years ago

kehr commented 10 years ago

发现bug一枚。当网络连接到需要认证的无线网络时,usage的返回值是网页内容,这显然是不合理的。

不知道2.2.0版本有没有注意到这个问题。

timebug commented 10 years ago

Hi, kehr

我在 usage 方法返回之前进行下整数检查,若非整数,则抛出 ValueError 异常如何?

具体调整见: https://github.com/upyun/python-sdk/commit/339b143142e2e60a64fac1423aae17167abd8ec4

另外,为了保持 API 的兼容性,up.usage 调用仍然返回 py3.x/str 和 py2.x/unicode 类型。

kehr commented 10 years ago

@timebug 我觉得这个靠谱。赞同!

因为 usage 的目标返回值是一个数值,而且正常的流程下一定会得到这个值。 如果返回的不是数值就说明获取的值有问题,所以我觉得 ValueError 是比较合理的。而且返回值统一为 str 也非常赞同!

还有个问题:

我在项目里增加了上传下载进度条后,感觉速度慢了好多。 而且 progressbar 不能处理空文件上传的问题(抛异常ZeroDivisionError),我的处理办法是上传前检查文件大小,如果文件非空则使用带进度条的上传方式,否则使用不带进度条的上传方式。下载到是可以,但文件较小(只有几B或者为空)的情况下是不会显示进度条的。 所以整合进度条到 upyun 的 SDK,我觉得需要优化的地方有两点:

  1. 解决性能问题,提高响应速度(不知道是不是progressbar本身的问题)
  2. 解决空文件上传的问题(我认为这个检测不应该放在本地,希望能整合到SDK里)

最近在准备入职的事情,安顿下来后,我翻下源码,看看有没有好的解决办法。

timebug commented 10 years ago

Hello, @kehr

1 解决性能问题,提高响应速度(不知道是不是progressbar本身的问题)

建议配合最新版本的 requests 库,以及选择以下版本 progressbar 再测试看看:

https://pypi.python.org/pypi/progressbar2

2 解决空文件上传的问题(我认为这个检测不应该放在本地,希望能整合到SDK里)

恩,欢迎贡献相关 PR 上来!

Thanks.