foyoux / aligo Goto Github PK
View Code? Open in Web Editor NEW🔥简单、易用、可扩展的阿里云盘 API 接口库🚀
License: GNU General Public License v3.0
🔥简单、易用、可扩展的阿里云盘 API 接口库🚀
License: GNU General Public License v3.0
操作系统信息
。。。
错误描述
。。。
情况描述:
附:重新扫描二维码登录后,打印出来的 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'
跪请大佬协助解决问题!
新功能请求
@lemisky 老师好,在你的帮助下,我已经成功登陆网盘,列出了文件目录。但是要从网盘中某个文件夹,找到一个文件,将其下载到本地指定目录,这个我看了源码注释还是不会。麻烦你再录一个视频,或者给代码和注释也可以。还有群号过期了,我想加。
aligo协议base64方式过于难用,不方便分享给不会运行代码的人,可考虑更简便方式。兼容115,aliyundrive,小白羊等方式进行导入导出秒传链接
新功能请求
目前版本使用的token为pc版本的token,获取下载链接下载时,需要带上 "Referer": "https://www.aliyundrive.com/"
的header,发现使用手机版本的token不需要,建议使用手机版登陆的token来获取下载链接。
新功能请求
将其他分享转存到我的网盘功能
操作系统信息
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)
"""获取订阅页面推荐用户列表"""
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)
"""获取订阅页面推荐用户列表"""
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)
"""
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 用的是另一个账户
"""
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)
"""
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)
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'))
新功能请求
转存函数batch_share_file_saveto_drive的file_id_list参数能否支持如果传入None,即表示转存全部文件?
新功能请求
rt
错误描述
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)
下载支持断点续传
新功能请求
。。。
如何获取图片上传后的url连接,此链接在网页打开就显示图片
新功能请求
。。。
建议放开配置文件的目录配置
aligo_config_folder
操作系统信息
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的信息。
这该如何解决呢?
操作系统信息
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
"""..."""
from aligo import Aligo
if __name__ == '__main__':
ali = Aligo()
x = ali.upload_folder('/home/foyou/Pictures/123.mp4')
print(x)
预期行为:报错,提示文件夹不存在
实际行为:云盘创建 123.mp4 文件夹后,报错
新功能请求
。。。
群二维码过期,无法加群
错误描述
当我使用file.download_url字段去用postman下载时会403但有时候又可以成功,作者有遇到类似的情况吗
。。。
新功能请求
同步功能建议,能否增加只对比文件名选项,需要同步的文件都是很大且不会修改的文件,但是每次执行都要重新计算sha1,导致同步很慢,或可以缓存当前文件状态,无变化则跳过计算,希望采纳!
新功能请求
官方有 /v2/file/get_office_preview_url 这个接口
。。。
如秒传链接是从文本文件里split()读取的, size则是str类型
115://123.mp3|123123|fjdioafj-fdadf
所以create_by_hash(),size参数需检验是否为int, 或进行自动转换
pycharm出来的二维码,使用云盘扫描不成功
参考代码是入门版的:
from aligo import Aligo
ali = Aligo()
user = ali.get_user()
ll = ali.get_file_list()
print(ll)
新功能请求
阿里云盘相册在执行 ali.get_file_list()无法获取。是不是可以加上相册的功能
新功能请求
aligo根目录没有EXE也没有py文件,有没有办法在CMD中启动?
错误描述
sync_folder的参数file_filter,说明中写的“文件过滤函数,参数为 文件绝对路径,返回值为 True
则过滤,可用于实现 只同步 特定文件 或 排除某些文件”。
事实上,参数为文件名。
新功能请求
能否提供一个文件夹同步的例程
。。。
新功能请求
能让他在web 浏览器中以url形式在线播放视频吗,但是不要占用服务流量,要的不是转发而是给一个文件的绝对地址
希望@lemisky老师示范一下使用aria2c和IDM两种下载方式。
有时候阿里云盘会吃文件,建议加一个加密模式,仍然能正常操作,但是最终上传的时候只会上传一个加密的压缩文件,所有的文件和文件夹操作都是在这个压缩包中进行的,当然还可以试着再做个快速迁移,把整个云盘里的东西都搬到压缩包里(然后删除原文件?),如果能指定压缩包格式的话更好,谢谢了
新功能请求
因为get_file_list 获取大数据时实在是太慢了
不知道能否加个类似于分类,排序的功能
1.建议将 download_file
download_files
download_folder
upload_file
upload_files
upload_folder
合并为download
和upload
同时允许直接传递获取的文件/文件夹对象或文件路径
2.建议后台增加一个字典形式的网盘文件目录缓存来减轻压力(可能会比直接遍历快一点?)
新功能请求
新功能请求
能否增加支持压缩包云端解压缩功能?
新功能请求
操作系统信息
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)
新功能请求
希望可以增加监测本地目录发生变化,然后上传阿里云盘
新功能请求
。。。
操作系统信息
Win7
错误描述
以下内容以py后缀保存并运行,可以正常同步目录,但是如果以pyw保存则不行。需要添加类似Patch里的代码重定向输出才能工作,问题应该出在logging相关部分。
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 呢?这样的话,即使网络断开几秒种也可以继续。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.