aruelius / cloud189 Goto Github PK
View Code? Open in Web Editor NEW天翼云盘 CLI Python
License: GNU General Public License v3.0
天翼云盘 CLI Python
License: GNU General Public License v3.0
报的是permission denied。你的脚本直接把文件写入到根目录了。普通用户是不行的,加了python3.8 ./main.py 就可以运行了。但是你的readme里面写的样例就是python3.8 main.py。所以我猜你用的是root权限运行的
[root@server 189]# python 189.py list
File "189.py", line 26
def encrypt(password: str) -> str:
^
SyntaxError: invalid syntax
大佬出现这个是什么操作 求解
python3.6 已经安装依赖
commit d58200b 添加了基于 zip 批量下载的 文件夹下载方法,因为 headers
中没有 content-length
,因此无法显示下载完成进度,只能显示当前下载完成量,同时也不支持 断点续传功能。
另外现在 下载文件会在本地设置 的下载路径中 建立于云端一致的相对路径。
不建议直接下载包含文件数量多文件体积大的文件夹。
Traceback (most recent call last):
File "main.py", line 9, in
commander.login(("--auto", ))
File "/home/maver/cloud189/cloud189/cli/cli.py", line 109, in login
code = self._disk.login(username, password)
File "/home/maver/cloud189/cloud189/api/core.py", line 144, in login
captchaToken, returnUrl, paramId = self._redirect()
File "/home/maver/cloud189/cloud189/api/core.py", line 98, in _redirect
captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
AttributeError: 'NoneType' object has no attribute 'text'
能运行,输完账密报了这个错,然后就崩了
大佬求解
Error : [Errno 30] Read-only file system: '/captcha.png'
应该是没有权限向mac系统的/
根目录写入图片,建议修改下写入的路径。
正在上传: vol3.00000.m2ts 大小: 7.05GB
Traceback (most recent call last):
File "189.py", line 286, in <module>
upload(sys.argv[2])
File "189.py", line 235, in upload
upload_file()
File "189.py", line 231, in upload_file
"Filedata": open(filePath, "rb").read()
MemoryError
直接发curl代码吧
每日签到:
curl -s "http://api.cloud.189.cn//mkt/userSign.action" -H "SessionKey:arg1"
抽奖1:
curl -s -X GET -H "Host:m.cloud.189.cn" -H "User-Agent:xxxxx" -H "X-Requested-With:XMLHttpRequest" -H "Referer:https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=0" -H "Cookie:COOKIE_LOGIN_USER=arg1" "https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN&activityId=ACT_SIGNIN&noCache=0.00729305869354957"
抽奖2:
curl -X GET -H "Host:m.cloud.189.cn" -H "User-Agent:xxxx" -H "X-Requested-With:XMLHttpRequest" -H "Referer:https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1" -H "Cookie:COOKIE_LOGIN_USER=arg1" "https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN_PHOTOS&activityId=ACT_SIGNIN&noCache=0.3608158782387296"
https://i.loli.net/2020/05/18/xtWJVhlfGDgM7Se.png
新增交互功能,cookie 登录,等
还有一大堆坑需要填,目前 login、clogin、ls、rm、share、down、upload
应该是正常的。
https://github.com/rachpt/cloud189
改动很大,考虑合并一下吗?
打包了一个 windows 平台的测试版本 https://lanzous.com/ics0cfc
服务器linux挂载了一块同一公司的网络硬盘(上传的文件都在这硬盘上)。服务器本身速度渣,大约U AND D都是5M/S左右。
今天第一次使用贵工具上传一个文件夹,里面包含一个22G的大文件,upload之后,下行激增到50M/s,上行500kb/s左右,感觉很奇怪,jobs -f查看,running,进度始终为0,CT云上已经显示几KB的文件已完成。大约过了5-10分钟左右,发现finished,进度依然为0,CT云上显示22G的文件居然已经上传成功!!!!!!Suprised(甚至准备直接续费了~~~手动滑稽)!因为服务器上传速度一直显示400-500kb/s,而下行持续50M/s。无法理解~
前面跟帖咨询过后,再次上传一个类似大小22G的文件,服务器速度与前面类似,即下行短暂5-10分钟持续50M/S速度之后下降至100kb/s,上行一直400-500kb/s,但反复刷新CT云,发现并没有像第一次那样成功上传,进入jobs,发现进度很缓慢,进度条0.1%的非常缓慢递增....
Q1:第一次如此快的速度完成上传如何解释?
Q2:为什么会出现短暂5-10分钟持续50M/S下行速度而上行一直无速度?从文件大小、下行速度推算,下载(上传)完一个约22G文件就是只需要5-10分钟。挂载硬盘直连CT云了?但理论解释不通
Q3:根据以上推论,我第二次开始我的账号就被国区限速了?
PS:目前上传进度非常缓慢。。。。。上下行一直100-200!
感谢作者提供这么好的项目,请问下怎么显示速度
/main.py upload -f /www/backup/site -----F参数显示的是进度,没有速度,请问支持显示上传速度吗(KB/S)
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 467, in send
low_conn.endheaders()
File "/usr/lib/python3.8/http/client.py", line 1235, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1006, in send_output
self.send(msg)
File "/usr/lib/python3.8/http/client.py", line 946, in send
self.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 352, in connect
self.sock = ssl_wrap_socket(
File "/usr/lib/python3/dist-packages/urllib3/util/ssl.py", line 383, in ssl_wrap_socket
return context.wrap_socket(sock)
File "/usr/lib/python3.8/ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.8/ssl.py", line 1040, in _create
self.do_handshake()
File "/usr/lib/python3.8/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1108)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/root/kooapk/kooapk-kitchen/tools/cloud189/cloud189/cli/downloader.py", line 232, in run
infos = self._disk.upload_dir(self._up_path, self._folder_id, self._force, self._mkdir,
File "/root/kooapk/kooapk-kitchen/tools/cloud189/cloud189/api/core.py", line 724, in upload_dir
up_code = self.upload_file(upload_file[0], upload_file[1], force=force, callback=callback)
File "/root/kooapk/kooapk-kitchen/tools/cloud189/cloud189/api/core.py", line 662, in upload_file
return self._upload_file_by_client(up_info)
File "/root/kooapk/kooapk-kitchen/tools/cloud189/cloud189/api/core.py", line 537, in _upload_file_by_client
code = self._upload_file_data(file_upload_url, upload_file_id, up_info)
File "/root/kooapk/kooapk-kitchen/tools/cloud189/cloud189/api/core.py", line 469, in _upload_file_data
resp = requests.put(url, data=post_data, headers=headers)
File "/usr/lib/python3/dist-packages/requests/api.py", line 131, in put
return request('put', url, data=data, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
[0] Status: Finished | Process:秒传检查 | Upload: romok/tmp (1/9) -> 全部文件
当运行了cli之后没法列出文件目录,导致在输入上传的文件路径都得退出cli,先复制好再回去cli粘贴。如果加上这个功能会好用很多
全部文件 > Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/local/python3/lib/python3.9/site-packages/requests/adapters.py", line 479, in send
r = low_conn.getresponse(buffering=True)
TypeError: getresponse() got an unexpected keyword argument 'buffering'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/python3/lib/python3.9/site-packages/requests/adapters.py", line 482, in send
r = low_conn.getresponse()
File "/usr/local/python3/lib/python3.9/http/client.py", line 1347, in getresponse
response.begin()
File "/usr/local/python3/lib/python3.9/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/local/python3/lib/python3.9/http/client.py", line 276, in _read_status
raise RemoteDisconnected("Remote end closed connection without"http.client.RemoteDisconnected: Remote end closed connection without response
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/python3/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/root/cloud189/cloud189/cli/downloader.py", line 232, in run
infos = self._disk.upload_dir(self._up_path, self._folder_id, self._force, self._mkdir,
File "/root/cloud189/cloud189/api/core.py", line 736, in upload_dir
up_code = self.upload_file(upload_file[0], upload_file[1], force=force, callback=callback)
File "/root/cloud189/cloud189/api/core.py", line 674, in upload_file
return self._upload_file_by_client(up_info)
File "/root/cloud189/cloud189/api/core.py", line 549, in _upload_file_by_client
code = self._upload_file_data(file_upload_url, upload_file_id, up_info)
File "/root/cloud189/cloud189/api/core.py", line 481, in _upload_file_data
resp = requests.put(url, data=post_data, headers=headers, verify=False, timeout=None)
File "/usr/local/python3/lib/python3.9/site-packages/requests/api.py", line 134, in put
return request('put', url, data=data, **kwargs)
File "/usr/local/python3/lib/python3.9/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/python3/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/python3/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/usr/local/python3/lib/python3.9/site-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: Remote end closed connection without response
全部文件 > jobs
客户端centos7
版本0.0.5
文件大小300m-1G
只有几个文件成功上传
python3.8.2和python3.9.1都有错误
小文件好像可以
登入自动退出,然后就再也不能运行了。
而且上个版本上传下载每次都报错,能上传就没管。
(py38) root@localhost:~/cloud189# python main.py Traceback (most recent call last): File "main.py", line 9, in <module> commander.login(("--auto", )) File "/root/cloud189/cloud189/cli/cli.py", line 98, in login self.refresh(config.work_id) File "/root/cloud189/cloud189/cli/config.py", line 221, in work_id return self._work_id AttributeError: 'Config' object has no attribute '_work_id'
例如提供export某目录下文件的命令
export -o /local/path/tianyi_links.txt /cloud/path
导出形似tianyi://{filename}|{size}|{md5}|{save_path}的通用格式
再附带提供一个import命令
import -i tianyi_links.txt /cloud/path
可以读取这样一堆链接
利用秒传接口上传到云盘上
如果没有问题报告,近期准备 release 新版本,
另外 Wiki 使用说明部分需要完善。
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ft66xc2b/pillow/setup.py'"'"'; file='"'"'/tmp/pip-install-ft66xc2b/pillow/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-3f_n35ve/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.8/Pillow Check the logs for full command output.
安装到最后一步提示这个,无法安装完成,求指教,设备是N1装了OPENWRT
类似增量上传功能
可借鉴项目OneDriveUploader
#!/bin/bash
# filename: upload.sh
cloud189='/home/path/to/cloud189/main.py'
cd "/mnt/data/movies/"
for i in `ls`;
do
echo "uplaod $i" >> /mnt/data/up.log
$cloud189 upload "/mnt/data/movies/$i"
done
nohup ./upload.sh &> /path/to/log &
Exception in thread Thread-4:
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/path/to/cloud189/cloud189/cli/manager.py", line 16, in foo
input_with_timeput_ans = input()
OSError: [Errno 9] Bad file des
root@sd-128408:~/cloud189-master# python3 main.py
Traceback (most recent call last):
File "main.py", line 4, in
from cloud189.cli.cli import Commander
File "/root/cloud189-master/cloud189/cli/init.py", line 1, in
from cloud189.cli.config import config
File "/root/cloud189-master/cloud189/cli/config.py", line 3, in
from cloud189.api.utils import ROOT_DIR
File "/root/cloud189-master/cloud189/api/init.py", line 1, in
from cloud189.api.core import Cloud189
File "/root/cloud189-master/cloud189/api/core.py", line 8, in
import simplejson
ModuleNotFoundError: No module named 'simplejson'
jobs -f
进入连续显示 任务状态 后,无法退出,直到所有任务完成;mv
移动文件夹将非常耗时(可以考虑让 mv 直接接受一个目标文件夹 id)。你好,down / d 操作后只能是下载,没有显示直链地址
比如A目录下有多个1.txt、2.txt
执行命令:
upload D:\a /我的音乐
进程:
[3] 准备上传: D:/a/1.txt
[3] 检测秒传中, 请稍候...
[3] 秒传成功, 保存到网盘路径: /我的音乐/a/1.txt
[3] 删除D:/a/1.txt成功
作者考虑加入这个小功能吗 很实用,或者能自己修改您的源代码吗
默认工作在个人云盘下,每天只有200G流量,请问有办法切换家庭云吗
ubuntu@ubuntu:~/github/cloud189$ python3.8 main.py
Traceback (most recent call last):
File "main.py", line 4, in
from cloud189.cli.cli import Commander
File "/home/ubuntu/github/cloud189/cloud189/cli/cli.py", line 8, in
from cloud189.api import Cloud189
File "/home/ubuntu/github/cloud189/cloud189/api/init.py", line 1, in
from cloud189.api.core import Cloud189
File "/home/ubuntu/github/cloud189/cloud189/api/core.py", line 12, in
from requests_toolbelt import MultipartEncoder, MultipartEncoderMonitor
ModuleNotFoundError: No module named 'requests_toolbelt'
ls cd upload share全都不可以,至少我用过的全都不可以 cd还不能单命令使用
作者你好,
首先感谢你编写的cli,不过我在使用的时候遇到了一个问题。在我开始上传文件一段时间后,他会报出BrokenPipeError的错误:
Traceback (most recent call last):
File "189.py", line 295, in <module>
upload(sys.argv[2])
File "189.py", line 244, in upload
upload_file()
File "189.py", line 240, in upload_file
"Content-Type": multipart_data.content_type
File "/home/user/.local/lib/python3.6/site-packages/requests/sessions.py", line 578, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/home/user/.local/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/home/user/.local/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/home/user/.local/lib/python3.6/site-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BrokenPipeError(32, 'Broken pipe'))
我重试了几次都是这样,不如原因为何。
我的环境是:Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-169-generic x86_64) 与 Python 3.6.10
我上传的文件大小为:14.5GB
好像一次只能上传一个文件?
我是用 python3 189.py upload * 这个命令
可以支持多用户同时在线使用吗?
天翼云官方换新api了,准备更新吗?
复现操作
建立testsync目录,建立a,b,c三个文件
执行python main.py upload testsync 正常上传
执行echo 'test' > /testsync/a
再次执行 python main.py upload testsync 卡死,表现为100%进度但是无回显且远程文件并未改变
ubuntu@127:~/github/cloud189-master$ sudo python main.py
Traceback (most recent call last):
File "main.py", line 4, in
from cloud189.cli.cli import Commander
File "/home/ubuntu/github/cloud189-master/cloud189/cli/cli.py", line 242
if file := self._file_list.find_by_name(fname):
^
SyntaxError: invalid syntax
参考 https://github.com/Dawnnnnnn/Cloud189 ,移植了文件秒传功能,现在看看 怎么显示上传进度。
网页登录 铂金会员 和 普通会员账户,打开下面链接
https://cloud.189.cn/v2/getLoginedInfos.action?showPC=true
提供返回的 json 数据结构(删除、修改个人敏感信息),特别是需要 superVip
的值。
目前已有 黄金会员 的信息。
Line 517 in d454e02
.config
数据结构,添加新的 命令,比如su、who、logout
等,以及一个新的 api 方法 https://cloud.189.cn/v2/getLoginedInfos.action
,可能还需要修改 提示符内容;pwd
命令,打印当前工作路径;axel
)下载,同时 对于是文件夹的 分享链接的提取 可能需要做一个类似与 现在 recovery.py 的处理方案,这样才能单独操作 分享链接中的单个文件;不知道是不是我自己的原因,已经关掉了代理。(阿里云的ecs学生机,深圳区域的)速度 90kb左右
直接运行python ./main.py sign --auto 后:
Traceback (most recent call last): File "/Users/Terry/it/source/git/cloud189/main.py", line 9, in <module> commander.login(("--auto", )) File "/Users/Terry/it/source/git/cloud189/cloud189/cli/cli.py", line 99, in login self.refresh(config.work_id) File "/Users/Terry/it/source/git/cloud189/cloud189/cli/cli.py", line 82, in refresh self._file_list, self._path_list = self._disk.get_file_list(dir_id) File "/Users/Terry/it/source/git/cloud189/cloud189/api/core.py", line 338, in get_file_list resp = resp.json()
把resp打印出来看后,看到这个url:https://cloud.189.cn/v2/listFiles.action 的resp是:
if(redirect_url == 'null' || redirect_url == ''){
redirect_url = '';
}
parent.window.document.location.href=redirect_url;
</script>
建议添加功能,上传前可以在文件末尾追加一个字节,改变哈希值,防审查被他人波及。
echo 'B' >> file
版本是3.8.1 没错哦
root@link:~/cloud189# python3 main.py
Traceback (most recent call last):
File "main.py", line 4, in
from cloud189.cli.cli import Commander
File "/root/cloud189/cloud189/cli/cli.py", line 13, in
from cloud189.cli.downloader import Downloader, Uploader
File "/root/cloud189/cloud189/cli/downloader.py", line 7, in
from cloud189.cli.utils import why_error
File "/root/cloud189/cloud189/cli/utils.py", line 6, in
import readline
File "/opt/lib/python3.8/site-packages/readline.py", line 6, in
from pyreadline.rlmain import Readline
File "/opt/lib/python3.8/site-packages/pyreadline/init.py", line 12, in
from . import logger, clipboard, lineeditor, modes, console
File "/opt/lib/python3.8/site-packages/pyreadline/clipboard/init.py", line 13, in
from .win32_clipboard import GetClipboardText, SetClipboardText
File "/opt/lib/python3.8/site-packages/pyreadline/clipboard/win32_clipboard.py", line 37, in
import ctypes.wintypes as wintypes
File "/wintypes.py", line 20, in
ValueError: type 'v' not supported
httplib_response = conn.getresponse()
File "/usr/lib/python3.6/http/client.py", line 1356, in getresponse
response.begin()
File "/usr/lib/python3.6/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.6/http/client.py", line 276, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C189Checkin.py", line 132, in
main()
File "C189Checkin.py", line 14, in main
login(username, password)
File "C189Checkin.py", line 127, in login
r = s.get(redirect_url)
File "/home/runner/.local/lib/python3.6/site-packages/requests/sessions.py", line 543, in get
return self.request('GET', url, **kwargs)
File "/home/runner/.local/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/home/runner/.local/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/home/runner/.local/lib/python3.6/site-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
##[error]Process completed with exit code 1.
不是很懂py
只是想知道hmac加密的key是怎样获取
明文应该是:SessionKey=6601ff47-760e-4f9b-bca0-1a603399c2f7&Operate=GET&RequestURI=/mkt/userSign.action&Date=Wed, 14 Jul 2021 12:10:38 GMT
if not flag_arg_l:
if file := self._file_list.find_by_name(fname):
if file.isFolder:
fid = file.id
else:
error(f"{fname} 非文件夹,显示当前目录文件")
else:
error(f"{fname} 不存在,显示当前目录文件")
不知道哪里拼写异常。可是就是报错,pylint也显示这个。
ubuntu@ying:~/github/cloud189$ python ./189.py list
File "./189.py", line 27
def encrypt(password: str) -> str:
^
SyntaxError: invalid syntax
咋整??
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.