Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

下载文件夹时有发生错误 #12

Closed
jimu5 opened this issue Feb 18, 2022 · 15 comments
Closed

下载文件夹时有发生错误 #12

jimu5 opened this issue Feb 18, 2022 · 15 comments

Comments

@jimu5
Copy link
Contributor

jimu5 commented Feb 18, 2022

操作系统信息

debian 11

python 3.9.2

依赖包版本

Package           Version
----------------- --------------
aligo             2.1.1
arrow             1.2.2
certifi           2020.6.20
chardet           4.0.0
coloredlogs       15.0.1
httplib2          0.18.1
humanfriendly     10.0
idna              2.10
Pillow            9.0.1
pip               20.3.4
pycurl            7.43.0.6
PySimpleSOAP      1.16.2
python-apt        2.2.1
python-dateutil   2.8.2
python-debian     0.1.39
python-debianbts  3.1.0
PyYAML            6.0
qrcode            7.3.1
qrcode-terminal   0.8
reportbug         7.10.3+deb11u1
requests          2.25.1
setuptools        52.0.0
six               1.16.0
tqdm              4.62.3
typing-extensions 4.1.1
urllib3           1.26.5
wheel             0.34.2

错误描述

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/aligo/core/Download.py", line 123, in download_files
    file_path = self._core_download_file(file_path, file.download_url)
  File "/usr/local/lib/python3.9/dist-packages/aligo/core/Download.py", line 86, in _core_download_file
    with requests.get(url, headers={
  File "/usr/lib/python3/dist-packages/requests/api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 456, in prepare_request
    p.prepare(
  File "/usr/lib/python3/dist-packages/requests/models.py", line 316, in prepare
    self.prepare_url(url, params)
  File "/usr/lib/python3/dist-packages/requests/models.py", line 390, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'None': No schema supplied. Perhaps you meant http://None?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/dist-packages/aligo/apis/Download.py", line 84, in download_folder
    return self.__download_folder(folder_file_id, local_folder, drive_id)
  File "/usr/local/lib/python3.9/dist-packages/aligo/apis/Download.py", line 93, in __download_folder
    self.__download_folder(folder_file_id=file.file_id,
  File "/usr/local/lib/python3.9/dist-packages/aligo/apis/Download.py", line 93, in __download_folder
    self.__download_folder(folder_file_id=file.file_id,
  File "/usr/local/lib/python3.9/dist-packages/aligo/apis/Download.py", line 93, in __download_folder
    self.__download_folder(folder_file_id=file.file_id,
  File "/usr/local/lib/python3.9/dist-packages/aligo/apis/Download.py", line 97, in __download_folder
    self.download_files(files, local_folder=local_folder)
  File "/usr/local/lib/python3.9/dist-packages/aligo/core/Download.py", line 126, in download_files
    file_path = self._core_download_file(file_path, file.download_url)
  File "/usr/local/lib/python3.9/dist-packages/aligo/core/Download.py", line 86, in _core_download_file
    with requests.get(url, headers={
  File "/usr/lib/python3/dist-packages/requests/api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 456, in prepare_request
    p.prepare(
  File "/usr/lib/python3/dist-packages/requests/models.py", line 316, in prepare
    self.prepare_url(url, params)
  File "/usr/lib/python3/dist-packages/requests/models.py", line 390, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'None': No schema supplied. Perhaps you meant http://None?
@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

应该是请求频率太高,导致被屏蔽了。

程序是有处理这个的,重试 3 次,有重试日志信息就对了

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

被屏蔽我也没办法

@jimu5
Copy link
Contributor Author

jimu5 commented Feb 18, 2022

应该不是被屏蔽了,本地试了下只有那个文件下载的时候会报这个错误~

btw,并没有看到重试相关的输出信息

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

这样的呀,莫非这文件夹有什么特别之处。

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

哪个文件呢,截图看看

@jimu5
Copy link
Contributor Author

jimu5 commented Feb 18, 2022

完整的信息

>>> ali.search_file("美人赠我蒙汗药.epub")
22:56:40.946 aligo.INFO POST https://api.aliyundrive.com/v2/file/search?appName=aliyun_drive 200 991
[BaseFile(name='美人赠我蒙汗药.epub', type='file', file_id='61d52f1a7ebc9e626b9b40989c138eedbdf259ba', parent_file_id='61d52f1849a32ece23d3402588a01b120b40ed2f')]        
>>> ali.download_file("61d52f1a7ebc9e626b9b40989c138eedbdf259ba")
22:56:58.553 aligo.INFO 开始下载文件 C:\Users\Administrator\Desktop\aligo\61d52f1a7ebc9e626b9b40989c138eedbdf259ba
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Administrator\Desktop\aligo\aligo\apis\Download.py", line 157, in download_file
    return self._core_download_file(file_path, url)
  File "C:\Users\Administrator\Desktop\aligo\aligo\core\Download.py", line 86, in _core_download_file
    with requests.get(url, headers={
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\api.py", line 61, in request
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\sessions.py", line 456, in prepare_request
    p.prepare(
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\models.py", line 316, in prepare
    self.prepare_url(url, params)
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\models.py", line 390, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'None': No schema supplied. Perhaps you meant http://None?
>>> ali.download_file("61d52f1a7ebc9e626b9b40989c138eedbdf259ba")
22:59:21.690 aligo.INFO 开始下载文件 C:\Users\Administrator\Desktop\aligo\61d52f1a7ebc9e626b9b40989c138eedbdf259ba
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Administrator\Desktop\aligo\aligo\apis\Download.py", line 157, in download_file
    return self._core_download_file(file_path, url)
  File "C:\Users\Administrator\Desktop\aligo\aligo\core\Download.py", line 86, in _core_download_file
    with requests.get(url, headers={
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\api.py", line 61, in request
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\sessions.py", line 456, in prepare_request
    p.prepare(
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\models.py", line 316, in prepare
    self.prepare_url(url, params)
  File "C:\Users\Administrator\.pyenv\pyenv-win\versions\3.9.2\lib\site-packages\requests\models.py", line 390, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL 'None': No schema supplied. Perhaps you meant http://None?

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

你这个是 download_file 方法用错了。应该是 file_id='61d52f1a7ebc9e626b9b40989c138eedbdf259ba'

之所以这么设计,是因为一般 get_file_list 后都是有下载信息的,如果默认通过 file_id 获取,会比较费,因为已经有了

@jimu5
Copy link
Contributor Author

jimu5 commented Feb 18, 2022

实际上我用 file_id= 的方式也会报错
我print了一下执行 with requests.get(url, headers={ 中的url,发现它为 None

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

如果你确定就是这个文件引发的错误,
你可以把这个文件分享给我试一试。或者你在浏览器上面下载这个文件试试。
你要是分享给我的话,我明天看看。

@jimu5
Copy link
Contributor Author

jimu5 commented Feb 18, 2022

我调用了 get_download_url 方法看了下,发现返回的url是空

>>> ali.get_download_url(file_id='61d52f1a7ebc9e626b9b40989c138eedbdf259ba')
23:18:39.215 aligo.INFO POST https://api.aliyundrive.com/v2/file/get_download_url?appName=aliyun_drive 200 260
GetDownloadUrlResponse(expiration='2022-02-18T19:18:39.032Z', method='GET', size=254655, url='', cdn_url=None, internal_url='', ratelimit=RateLimit(part_size=0, part_speed=0), crc64_hash='7617904220042475267', content_hash='8FBFE27F41330B6912B5783C81B92B568C183557', content_hash_name='sha1')

用阿里云的客户端试了下,发现这个文件被屏蔽了,无法分享或者下载,应该是这个的问题了

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

😂😂😂

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

这个文件可以分享吗?我明天调试下,更新下代码

@jimu5
Copy link
Contributor Author

jimu5 commented Feb 18, 2022

我提个PR给你吧

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

那更好呀,欢迎欢迎

@lemisky
Copy link
Member

lemisky commented Feb 18, 2022

判断下,打个日志。然后看下会不会影响调用它的地方,应该就差不多了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants