Giter Site home page Giter Site logo

aligo's People

Contributors

5high avatar blabra avatar chill-lee avatar jimu5 avatar lemisky avatar qinpan1003 avatar thesoul20 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

aligo's Issues

「TypeError: __init__() got an unexpected keyword argument 'domain_id'」错误

情况描述:

  1. 之前已成功登录过1次,登录信息已被保存至 aligo.json,且登录后所有功能都可正常调用。
  2. 上次成功登录1天后,重新打开 Python,重新使用 ali = Aligo() 创建对象,并尝试调用上传文件接口,出现「TypeError: init() got an unexpected keyword argument 'domain_id'」错误,无法上传。
  3. 上述问题怀疑是登录态没有自动更新导致,遂删除「aligo.json」文件,然后重新使用 auth = Auth() 创建对象,打算重新扫描二维码、重新登录。
  4. 在重新扫描二维码登录后,又出现「TypeError: init() got an unexpected keyword argument 'domain_id'」错误,而 auth 对象并未成功创建,无法使用任何功能。

附:重新扫描二维码登录后,打印出来的 Log 如下

23:37:22.128 INFO 等待扫描二维码 ...
23:37:22.129 INFO 已扫描, 等待确认 ...
23:37:24.270 INFO 等待扫描二维码 ...
23:37:24.270 INFO 已确认 (你可以关闭二维码图像了.)
Traceback (most recent call last):
File "", line 1, in
File "/home/han/miniconda3/lib/python3.8/site-packages/aligo/core/Auth.py", line 154, in init
self._login()
File "/home/han/miniconda3/lib/python3.8/site-packages/aligo/core/Auth.py", line 200, in _login
self.token = Token(**response.json())
TypeError: init() got an unexpected keyword argument 'domain_id'

跪请大佬协助解决问题!

download

新功能请求

@lemisky 老师好,在你的帮助下,我已经成功登陆网盘,列出了文件目录。但是要从网盘中某个文件夹,找到一个文件,将其下载到本地指定目录,这个我看了源码注释还是不会。麻烦你再录一个视频,或者给代码和注释也可以。还有群号过期了,我想加。

支持各大协议妙传链接

aligo协议base64方式过于难用,不方便分享给不会运行代码的人,可考虑更简便方式。兼容115,aliyundrive,小白羊等方式进行导入导出秒传链接

token 获取使用手机版获取

新功能请求

目前版本使用的token为pc版本的token,获取下载链接下载时,需要带上 "Referer": "https://www.aliyundrive.com/" 的header,发现使用手机版本的token不需要,建议使用手机版登陆的token来获取下载链接。

BUG: Package requests share_token not converted to str

操作系统信息
Linux localhost 5.10.107-android13-4-00004-gf0fe4f768061-ab8935229 on Termux

错误描述
With python 11, share_token in the POST header is not converted to type str and thus cause a type error.

下载文件夹时有发生错误

操作系统信息

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?

扩展功能举栗🌰 - 配有视频和代码

获取推荐的订阅用户

简单实现
"""获取订阅页面推荐用户列表"""
from aligo import Aligo


class CustomAligo(Aligo):
    """自定义Aligo类"""

    def user_recommend(self):
        """获取订阅页面推荐用户列表"""
        return self._post('/adrive/v1/timeline/user/recommend', body={
            'limit': 20,
            'order_by': "updated_at",
            'order_direction': "DESC",
            'user_id': self.user_id,  # 自己的user_id
        }).json()['items']


if __name__ == '__main__':
    cali = CustomAligo()
    ll = cali.user_recommend()
    print(ll)
2022-05-14.15-46-37.mp4
优化一下
"""获取订阅页面推荐用户列表"""
from dataclasses import dataclass
from typing import List

from aligo import Aligo


@dataclass
class FollowUser:
    """订阅用户"""
    description: str = None
    avatar: str = None
    user_id: str = None
    nick_name: str = None
    phone: str = None
    is_following: bool = None


class CustomAligo(Aligo):
    """自定义Aligo类"""

    def user_recommend(self) -> List[FollowUser]:
        """获取订阅页面推荐用户列表"""
        items = self._post('/adrive/v1/timeline/user/recommend', body={
            'limit': 20,
            'order_by': "updated_at",
            'order_direction': "DESC",
            'user_id': self.user_id,  # 自己的user_id
        }).json()['items']
        return [FollowUser(**item) for item in items]


if __name__ == '__main__':
    cali = CustomAligo()
    ll = cali.user_recommend()
    for f in ll:
        print(f.user_id, f.nick_name, f.is_following)
222.mp4
完善一下
"""获取订阅页面推荐用户列表"""
from dataclasses import dataclass
from typing import List

from aligo import Aligo


@dataclass
class FollowUser:
    """订阅用户"""
    description: str = None
    avatar: str = None
    user_id: str = None
    nick_name: str = None
    phone: str = None
    is_following: bool = None


class CustomAligo(Aligo):
    """自定义Aligo类"""

    def user_recommend(self, limit: int = 20) -> List[FollowUser]:
        """获取订阅页面推荐用户列表"""
        resp = self._post('/adrive/v1/timeline/user/recommend', body={
            'limit': limit if limit <= 100 else 100,
            'order_by': "updated_at",
            'order_direction': "DESC",
            'user_id': self.user_id,  # 自己的user_id
        })
        items = resp.json()['items']
        return [FollowUser(**item) for item in items]


if __name__ == '__main__':
    cali = CustomAligo()
    ll = cali.user_recommend()
    for f in ll:
        print(f.user_id, f.nick_name, f.is_following)
333.mp4

订阅用户

订阅用户
"""
1. 获取订阅页面推荐用户列表
2. 订阅用户
"""
from dataclasses import dataclass
from typing import List

from aligo import Aligo


@dataclass
class FollowUser:
    """订阅用户"""
    description: str = None
    avatar: str = None
    user_id: str = None
    nick_name: str = None
    phone: str = None
    is_following: bool = None


class CustomAligo(Aligo):
    """自定义Aligo类"""

    def user_recommend(self, limit: int = 20) -> List[FollowUser]:
        """获取订阅页面推荐用户列表"""
        resp = self._post('/adrive/v1/timeline/user/recommend', body={
            'limit': limit if limit <= 100 else 100,
            'order_by': "updated_at",
            'order_direction': "DESC",
            'user_id': self.user_id,  # 自己的user_id
        })
        items = resp.json()['items']
        return [FollowUser(**item) for item in items]

    def follow_user(self, user_id: str) -> bool:
        """订阅用户"""
        resp = self._post('/adrive/v1/member/follow_user', body={
            'user_id': user_id
        })
        return resp.status_code == 200


if __name__ == '__main__':
    cali = CustomAligo()
    # 订阅 3 个用户
    users = cali.user_recommend(3)
    for user in users:
        if not user.is_following:
            result = cali.follow_user(user.user_id)
            print(result)
    # 想起来了,aligo 用的是另一个账户
444_1.mp4
444_2.mp4

取消订阅

取消订阅
"""
1. 获取订阅页面推荐用户列表
2. 订阅用户
3. 取消订阅用户
"""
from dataclasses import dataclass
from typing import List

from aligo import Aligo


@dataclass
class FollowUser:
    """订阅用户"""
    description: str = None
    avatar: str = None
    user_id: str = None
    nick_name: str = None
    phone: str = None
    is_following: bool = None


class CustomAligo(Aligo):
    """自定义Aligo类"""

    def user_recommend(self, limit: int = 20) -> List[FollowUser]:
        """获取订阅页面推荐用户列表"""
        resp = self._post('/adrive/v1/timeline/user/recommend', body={
            'limit': limit if limit <= 100 else 100,
            'order_by': "updated_at",
            'order_direction': "DESC",
            'user_id': self.user_id,  # 自己的user_id
        })
        items = resp.json()['items']
        return [FollowUser(**item) for item in items]

    def follow_user(self, user_id: str) -> bool:
        """订阅用户"""
        resp = self._post('/adrive/v1/member/follow_user', body={
            'user_id': user_id
        })
        return resp.status_code == 200

    def unfollow_user(self, user_id: str) -> bool:
        """取消订阅用户"""
        resp = self._post('/adrive/v1/member/unfollow_user', body={
            'user_id': user_id
        })
        return resp.status_code == 200


if __name__ == '__main__':
    cali = CustomAligo()
    # 订阅 3 个用户
    users = cali.user_recommend(3)
    for user in users:
        if not user.is_following:
            result = cali.follow_user(user.user_id)
            print(result)
555.mp4

获取订阅用户列表

获取订阅用户列表
"""
1. 获取订阅页面推荐用户列表
2. 订阅用户
3. 取消订阅用户
4. 获取订阅用户列表
"""
from dataclasses import dataclass, field
from typing import List

from aligo import Aligo


@dataclass
class FollowUser:
    """订阅用户"""
    description: str = None
    avatar: str = None
    user_id: str = None
    nick_name: str = None
    phone: str = None
    is_following: bool = None
    has_unread_message: bool = None
    latest_messages: List[dict] = field(default_factory=list)


class CustomAligo(Aligo):
    """自定义Aligo类"""

    def user_recommend(self, limit: int = 20) -> List[FollowUser]:
        """获取订阅页面推荐用户列表"""
        resp = self._post('/adrive/v1/timeline/user/recommend', body={
            'limit': limit if limit <= 100 else 100,
            'order_by': "updated_at",
            'order_direction': "DESC",
            'user_id': self.user_id,  # 自己的user_id
        })
        items = resp.json()['items']
        return [FollowUser(**item) for item in items]

    def follow_user(self, user_id: str) -> bool:
        """订阅用户"""
        resp = self._post('/adrive/v1/member/follow_user', body={
            'user_id': user_id
        })
        return resp.status_code == 200

    def unfollow_user(self, user_id: str) -> bool:
        """取消订阅用户"""
        resp = self._post('/adrive/v1/member/unfollow_user', body={
            'user_id': user_id
        })
        return resp.status_code == 200

    def list_following(self, limit: int = 20) -> List[FollowUser]:
        """获取订阅用户列表"""
        resp = self._post('/adrive/v1/member/list_following', body={
            "limit": limit, "order_by": "updated_at", "order_direction": "DESC"
        })
        items = resp.json()['items']
        return [FollowUser(**item) for item in items]


if __name__ == '__main__':
    cali = CustomAligo()
    users = cali.list_following()
    for user in users:
        print(user)
666_1.mp4
666_2.mp4

好像只能秒传了,之前没这问题

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 169, in _new_conn
conn = connection.create_connection(
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 96, in create_connection
raise err
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 86, in create_connection
sock.connect(sa)
TimeoutError: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 699, in urlopen
httplib_response = self._make_request(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 382, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1012, in _validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 353, in connect
conn = self._new_conn()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 181, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fc314b64b80>: Failed to establish a new connection: [Errno 110] Connection timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 755, in urlopen
retries = retries.increment(
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 574, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.aliyundrive.com', port=443): Max retries exceeded with url: /adrive/v3/file/list (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fc314b64b80>: Failed to establish a new connection: [Errno 110] Connection timed out'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/root/upload.py", line 6, in
remote_folder = ali.get_folder_by_path('download')
File "/usr/local/lib/python3.9/dist-packages/aligo/apis/File.py", line 158, in get_folder_by_path
folders = self.get_file_list(parent_file_id=parent_file_id, drive_id=drive_id, type='folder')
File "/usr/local/lib/python3.9/dist-packages/aligo/apis/File.py", line 97, in get_file_list
return list(result)
File "/usr/local/lib/python3.9/dist-packages/aligo/core/File.py", line 16, in _core_get_file_list
yield from self._list_file(ADRIVE_V3_FILE_LIST, body, GetFileListResponse)
File "/usr/local/lib/python3.9/dist-packages/aligo/core/BaseAligo.py", line 161, in _list_file
response = self._post(PATH, body=body)
File "/usr/local/lib/python3.9/dist-packages/aligo/core/BaseAligo.py", line 93, in _post
return self._auth.post(path=path, host=host, body=body, ignore_auth=ignore_auth)
File "/usr/local/lib/python3.9/dist-packages/aligo/core/Auth.py", line 350, in post
return self.request(method='POST', url=host + path, params=params,
File "/usr/local/lib/python3.9/dist-packages/aligo/core/Auth.py", line 300, in request
response = self.session.request(
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.aliyundrive.com', port=443): Max retries exceeded with url: /adrive/v3/file/list (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fc314b64b80>: Failed to establish a new connection: [Errno 110] Connection timed out'))

v2.1.2版本 循环导入包的问题

错误描述
v2.1.2 版本存在循环导入包的问题

>>> from aligo import Aligo
....
ImportError: cannot import name 'BaseFile' from partially initialized module 'aligo.types.BaseFile' (most likely due to a circular import)

使用 pip 以及 pipenv 安装aligo失败,Python == 3.6.7

操作系统信息
Ubuntu 20.04
Python版本为 3.6.7
pip版本 21.3.1
pipenv版本 2022.1.8

错误描述
在使用pipenv以及pip安装aligo时会出现 Could not find a version 的错误。

> pip install aligo
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
ERROR: Could not find a version that satisfies the requirement aligo (from versions: none)
ERROR: No matching distribution found for aligo

但是在 https://pypi.tuna.tsinghua.edu.cn/simple/ 网站上能够检索到aligo库。
同时,当使用pipenv 进行安装的时候也会出现同样的错误:

> pipenv install aligo --skip-lock
Installing aligo...
Error:  An error occurred while installing aligo!
Error text: Looking in indexes: https://mirrors.aliyun.com/pypi/simple/

ERROR: Could not find a version that satisfies the requirement aligo (from versions: none)
ERROR: No matching distribution found for aligo

✘ Installation Failed 

同样的,也能够在https://mirrors.aliyun.com/pypi/simple/上检索到aligo的信息。
这该如何解决呢?

usedforsecurity不兼容python3.8

操作系统信息

ubuntu 20.04 LTS python v3.8

错误描述

    up_file = ali.upload_file(filePath, folder.file_id, fileName)
27
  File "/home/runner/.local/lib/python3.8/site-packages/aligo/core/Create.py", line 229, in upload_file
28
    part_info = self._pre_hash(file_path=file_path, file_size=file_size, name=name,
29
  File "/home/runner/.local/lib/python3.8/site-packages/aligo/core/Create.py", line 69, in _pre_hash
30
    pre_hash = hashlib.sha1(f.read(1024), usedforsecurity=False).hexdigest()
31
TypeError: openssl_sha1() takes at most 1 argument (2 given)
32
Error: Process completed with exit code 1.

试过把aligo 降级到v4.6.5是没问题的,v4.6.6更新了, 不兼容python3.8

启动错误-卡在加载配置文件

操作系统信息
linux环境和windows环境都已测试
linux测试环境:Debian
windows测试环境:win10

错误描述
错误描述
一直卡在以上页面,删除配置文件后重启,问题仍然存在

有些文件有时候会403

错误描述
当我使用file.download_url字段去用postman下载时会403但有时候又可以成功,作者有遇到类似的情况吗
。。。

同步功能建议

新功能请求

同步功能建议,能否增加只对比文件名选项,需要同步的文件都是很大且不会修改的文件,但是每次执行都要重新计算sha1,导致同步很慢,或可以缓存当前文件状态,无变化则跳过计算,希望采纳!

pycharm出来的二维码,使用云盘扫描不成功

pycharm出来的二维码,使用云盘扫描不成功
参考代码是入门版的:
from aligo import Aligo

ali = Aligo()

获取用户信息

user = ali.get_user()

获取网盘根目录文件列表

ll = ali.get_file_list()
print(ll)

拉取阿里云盘相册

新功能请求

阿里云盘相册在执行 ali.get_file_list()无法获取。是不是可以加上相册的功能

install

新功能请求

aligo根目录没有EXE也没有py文件,有没有办法在CMD中启动?

sync_folder的参数file_filter,说明和实际不符

错误描述

sync_folder的参数file_filter,说明中写的“文件过滤函数,参数为 文件绝对路径,返回值为 True 则过滤,可用于实现 只同步 特定文件 或 排除某些文件”。
事实上,参数为文件名。

web 浏览器在线视频

新功能请求

能让他在web 浏览器中以url形式在线播放视频吗,但是不要占用服务流量,要的不是转发而是给一个文件的绝对地址

添加一个快捷加密

有时候阿里云盘会吃文件,建议加一个加密模式,仍然能正常操作,但是最终上传的时候只会上传一个加密的压缩文件,所有的文件和文件夹操作都是在这个压缩包中进行的,当然还可以试着再做个快速迁移,把整个云盘里的东西都搬到压缩包里(然后删除原文件?),如果能指定压缩包格式的话更好,谢谢了

无法同步文件夹,一直显示被限制

操作系统信息

windows11

错误描述

我刚开始用 aligo,一开始用最前面的例子试了下,是正常的。紧接着用同步功能,就出错了,如下:
image

请问该如何解决?难道是同步功能目前被官方禁了?

get_file_list 分页和排序

新功能请求
因为get_file_list 获取大数据时实在是太慢了
不知道能否加个类似于分类,排序的功能

一些建议

1.建议将 download_file download_files download_folder
upload_file upload_files upload_folder
合并为downloadupload
同时允许直接传递获取的文件/文件夹对象或文件路径
2.建议后台增加一个字典形式的网盘文件目录缓存来减轻压力(可能会比直接遍历快一点?)

无效下载链接或链接已过期 {resp.url}

操作系统信息

The outout of uname -a:

Linux Matrix.xyz 5.15.0-35-generic #36-Ubuntu SMP Sat May 21 02:24:07 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

错误描述

无法直接下载分享文件,即使转存之后也不行。
Traceback:

Traceback (most recent call last):
  File "/home/jing/Documents/Code/Shell/scripts/aliyun-share", line 77, in <module>
    ali.download_file(download_path, download_url)
  File "/home/jing/.local/lib/python3.10/site-packages/aligo/apis/Download.py", line 160, in download_file
    return self._core_download_file(file_path, url)
  File "/home/jing/.local/lib/python3.10/site-packages/aligo/core/Download.py", line 96, in _core_download_file
    raise ValueError(f'无效下载链接或链接已过期 {resp.url}')


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jing/Documents/Code/Shell/scripts/aliyun-share", line 85, in <module>
    ali.download_file(file_id=file_id, local_folder="/tmp")
  File "/home/jing/.local/lib/python3.10/site-packages/aligo/apis/Download.py", line 160, in download_file
    return self._core_download_file(file_path, url)
  File "/home/jing/.local/lib/python3.10/site-packages/aligo/core/Download.py", line 96, in _core_download_file
    raise ValueError(f'无效下载链接或链接已过期 {resp.url}')

我的代码片段如下:

download_url = ali.get_share_link_download_url(
    share_id=share_id, share_token=share_token,
    file_id=file_id).download_url
if download_path == '':
    download_path = '/tmp/' + ali.get_share_file(
        share_id=share_id,
        share_token=share_token.share_token,
        file_id=file_id).name
try:
    ali.download_file(download_path, download_url)
except ValueError:
    file_id = ali.share_file_saveto_drive(
        share_id=share_id,
        share_token=share_token,
        file_id=file_id).file_id
    try:
        ali.download_file(file_id=file_id, local_folder="/tmp")
    finally:
        ali.move_file_to_trash(file_id=file_id)

readme二维码失效

操作系统信息

None

错误描述

image
readme这个二维码假更新吧qaq
现在是2022-9-26 18:32:48就已经进不去 显示失效
不过楼主手动更的话确实麻烦 搞个微信机器人自动更

pyw不能工作

操作系统信息

Win7

错误描述

以下内容以py后缀保存并运行,可以正常同步目录,但是如果以pyw保存则不行。需要添加类似Patch里的代码重定向输出才能工作,问题应该出在logging相关部分。

Patch 示意
        if sys.executable.endswith('pythonw.exe'):
            logger.warning('using pythonw.exe, redirect stdout to %s, stderr to %s', stdoutlog, stderrlog)
            sys.stdout = open(stdoutlog, 'w')
            sys.stderr = open(stderrlog, 'w')
文件内容

import sys, logging
from aligo import Aligo

def aligo_test():
local_folder2 = 'c:/Users/FZU/Desktop/c'
# 云盘下的c目录,需要自己改成本人云上的某目录
remote_folder_id = '622a6ffa09e4472cdf821198933437567fcab4cb'
ali = Aligo(level = logging.DEBUG)
ali.sync_folder(local_folder2, remote_folder_id)

def main():
aligo_test()
return 0

if name == 'main':
sys.exit(main())

POST timeout setting

新功能请求

你好,我目前的网络状态不是很好。请问我有没有办法延长每一个 POST 的 timeout 呢?这样的话,即使网络断开几秒种也可以继续。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.