Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
aexus
bypy
提交
51d74305
B
bypy
项目概览
aexus
/
bypy
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
bypy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
51d74305
编写于
6月 13, 2017
作者:
H
Hou Tianze
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add rertry for downloader download. Close #372
上级
e81d63a2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
25 addition
and
11 deletion
+25
-11
HISTORY.md
HISTORY.md
+1
-0
HISTORY.rst
HISTORY.rst
+1
-0
bypy/bypy.py
bypy/bypy.py
+22
-10
bypy/const.py
bypy/const.py
+1
-1
未找到文件。
HISTORY.md
浏览文件 @
51d74305
### Version History:
-
1.5.6: Downloading using downloader also retries
-
1.5.5: Minor: Improve 'multiprocess' installation prompts
-
1.5.4: Print instructions on how to fix 'multiprocess' errors
-
1.5.3: Change to streaming upload
...
...
HISTORY.rst
浏览文件 @
51d74305
Version History:
~~~~~~~~~~~~~~~~
- 1.5.6: Downloading using downloader also retries
- 1.5.5: Minor: Improve 'multiprocess' installation prompts
- 1.5.4: Print instructions on how to fix 'multiprocess' errors
- 1.5.3: Change to streaming upload
...
...
bypy/bypy.py
浏览文件 @
51d74305
...
...
@@ -1850,7 +1850,6 @@ try to create a file at PCS by combining slices, having MD5s specified
def
__down_aria2c
(
self
,
remotefile
,
localfile
):
url
=
"{}{}"
.
format
(
dpcsurl
,
"file"
)
# i think encoding in UTF-8 before escaping is presumably the best practice
# http://stackoverflow.com/a/913653/404271
pars
=
{
...
...
@@ -1858,19 +1857,32 @@ try to create a file at PCS by combining slices, having MD5s specified
"path"
:
remotefile
.
encode
(
'utf-8'
),
"access_token"
:
self
.
__access_token
,
}
full_url
=
"{}?{}"
.
format
(
url
,
ulp
.
urlencode
(
pars
))
cmd
=
[
'aria2c'
,
'--user-agent="{}"'
.
format
(
const
.
UserAgent
)]
\
+
shlex
.
split
(
self
.
__downloader_args
)
\
+
[
'-o'
,
localfile
,
full_url
]
self
.
pd
(
"call: {}"
.
format
(
cmd
))
ret
=
subprocess
.
call
(
cmd
)
self
.
pd
(
"aria2c exited with status: {}"
.
format
(
ret
))
# TODO: a finer map return codes to our internal errors
if
ret
!=
const
.
ENoError
:
ret
==
const
.
ERequestFailed
return
ret
tries
=
self
.
__retry
subret
=
0
i
=
0
while
True
:
self
.
pd
(
"call: {}"
.
format
(
cmd
))
subret
=
subprocess
.
call
(
cmd
)
self
.
pd
(
"aria2c exited with status: {}"
.
format
(
subret
))
if
subret
==
0
:
return
const
.
ENoError
i
+=
1
if
i
<
tries
:
# algo changed: delay more after each failure
delay
=
const
.
RetryDelayInSec
*
i
perr
(
"Waiting {} seconds before retrying..."
.
format
(
delay
))
time
.
sleep
(
delay
)
perr
(
"Request Try #{} / {}"
.
format
(
i
+
1
,
tries
))
else
:
perr
(
"Maximum number ({}) of tries failed."
.
format
(
tries
))
if
self
.
__quit_when_fail
:
self
.
quit
(
const
.
EMaxRetry
)
return
const
.
EMaxRetry
# requirment: self.__remote_json is already gotten
def
__downchunks
(
self
,
rfile
,
start
):
...
...
bypy/const.py
浏览文件 @
51d74305
...
...
@@ -12,7 +12,7 @@ import os
# https://packaging.python.org/single_source_version/
__title__
=
'bypy'
__version__
=
'1.5.
5
'
__version__
=
'1.5.
6
'
__author__
=
'Hou Tianze'
__license__
=
'MIT'
__desc__
=
'Python client for Baidu Yun (Personal Cloud Storage) 百度云/百度网盘 Python 客户端'
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录