Closed 10362227 closed 3 years ago
设置环境变量或者添加 --oss-proxy http://127.0.0.1:8080 均无法让传输过程走代理。 计算文件hash值请求可以成功走代理。
上传 ../download/edited.mp4 的第8个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/*****": write tcp 127.0.0.1:47370->127.0.0.1:8080: use of closed network connection
上传 ../download/edited.mp4 的第8个分片时出现错误:Put "http://fhnfile.oss-cn-shenzhen.aliyuncs.com/*****": write tcp 127.0.0.1:47406->127.0.0.1:8080: write: connection reset by peer
@kdurov 我这里测试没有问题,你用的是最新版本吗?代理的连接稳定吗?HTTP代理是否需要用户名和密码?
@orzogc git最新版。不是中国网络,稳定性没问题的。http代理无需密码。socks5出错后以为支认http代理,改成http代理后同样错误……
@kdurov OSS上传是不支持socks代理的,只支持http代理,请问是上传了一部分文件才出错还是整个文件都上传不了?
@orzogc 上传一部分后太慢。找了个传中国速度快的机子搭了代理传,结果就失败了。 之后找别的文件从头传也一样出错。
@kdurov 我是说上传出错是上传了一部分后出错还是上传一开始就出错?
一开始就出错的 @orzogc
@orzogc 另外希望麻烦支持选择上传服务器线路么? 上传服务器都是 fhnfile.oss-cn-shenzhen.aliyuncs.com 这个在国外全部都会被解析到阿里云的 120.78.115.77 或者 39.108.31.34, 然而欧美到这两个IP都走电信线路。不说高峰期了,平时都炸的厉害。 路由上强制修改解析到移动或者联通节点的话,中国的非高峰期还有速度。 在不能修改解析结果的环境下就蛋痛了。 请问有可能像curl一样添加 --resolve 这样参数么?
@kdurov 你另外开个issue
@orzogc
已开新issue。
顺便请问这个代理问题你那有办法复现么?
@orzogc #26 已开新issue。
顺便请问这个代理问题你那有办法复现么?
我复现不了
可以同时使用 -oss-proxy -forbid-oss-proxy 参数只让 API 请求走代理吗?实际上传不走代理。 虽然可以 export https_proxy 不过这个也会影响到其他进程。
国外连接 uplb.115.com webapi.115.com 实在太惨了: 不是anycast,没有三线接入,丢包7成以上家常便饭。 八成时候会因为这个上传失败。经常还会在浪费大量时间计算sha1后失败,浪费时间损耗硬盘。
设置http_proxy
和https_proxy
这两个环境变量,然后用-forbid-oss-proxy
参数
一个终端的环境变量不会影响其他终端和非该终端运行的进程,单独用一个终端运行fake115uploader
就好了
@orzogc 现在就是这么用的。不过用配置环境变量后还要加一个参数。 既然有了跳过oss上传走代理参数能弄下只有api走/不走代理的参数吗?
@orzogc 现在就是这么用的。不过用配置环境变量后还要加一个参数。 既然有了跳过oss上传走代理参数能弄下只有api走/不走代理的参数吗?
你试试最新代码
最新版(0.5? go install 安装的master branch,没有查看参数版本只能估计是0.5) -http-proxy 和 -oss-proxy 疑似无效。
在一台被墙的主机上尝试 fake115uploader -http-proxy http://a.b.c.d:e -v
返回
http请求出现错误:Get "https://proapi.115.com/app/uploadinfo": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
代理服务端也没看到请求日志。但是如果配置环境变量是可以走的。
另外 -forbid-oss-proxy
参数永久被移除了吗?
最新版如果需要:
应该分别怎么添加参数呢?
谢谢
-forbid-oss-proxy
没有了,代理最好在fake115uploader.json
设置,参考 https://github.com/orzogc/fake115uploader#%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE
代理最好在
fake115uploader.json
设置
fake115uploader.json 里面加上 "httpProxy": "http://localhost:1234" 后测试。代理服务器并没有收到请求。 -http-proxy 参数也不生效。直接下的 https://github.com/orzogc/fake115uploader/releases/tag/v0.5 这里的也不行。
json里面乱填代理地址
fake115uploader -v
也能返回
2022/10/09 09:09:51 Cookies的值为:
2022/10/09 09:09:52 userID和userKey的值分别是:
2022/10/09 09:09:54 排序文件夹 0 成功
2022/10/09 09:09:55 本次运行没有上传文件
代理最好在
fake115uploader.json
设置fake115uploader.json 里面加上 "httpProxy": "http://localhost:1234" 后测试。代理服务器并没有收到请求。 -http-proxy 参数也不生效。直接下的 https://github.com/orzogc/fake115uploader/releases/tag/v0.5 这里的也不行。
json里面乱填代理地址
fake115uploader -v
也能返回2022/10/09 09:09:51 Cookies的值为: 2022/10/09 09:09:52 userID和userKey的值分别是: 2022/10/09 09:09:54 排序文件夹 0 成功 2022/10/09 09:09:55 本次运行没有上传文件
我这里测试是没有问题的,代理能正常使用,不论是用参数还是设置文件 你再试试最新代码,乱填代理地址上传是会报错的
我这里测试是没有问题的,代理能正常使用,不论是用参数还是设置文件 你再试试最新代码,乱填代理地址应该会报错了
https://github.com/orzogc/fake115uploader/releases/tag/v0.5 这里的win版能复现吗? 在别人机上传文件,不好弄go环境编译只能用这个。
0.5版本的代理是没问题的
不应该啊。我在别人的 win7 环境下上传,怎么弄都是不走代理的。
fake115uploader.json 文件里面只有
{
"cookies": "",
"cid": 0,
"resultDir": "",
"httpProxy": "http://a.b.c:1234"
}
难道是因为是 IPv6 代理的原因? 但是我乱填的1.2.3.4:1234 代理也被绕过了没有报错。
不清楚你的情况,我不用Windows,但是代理应该是没问题的
刚在一台 Linux 上编译 master branch ,一样的问题。 json 如下的情况,乱填的代理地址 fake115uploader -v 一样没报错。
{
"cookies": "",
"cid": 0,
"resultDir": "",
"httpProxy": "http://1.2.3.4:1234"
}
然后试了下手动在命令里面添加参数
fake115uploader -http-proxy http://1.1.1.1:1234 -v
不会报错
但是 fake115uploader -http-proxy 1.1.1.1:1234 -v
会报错。
解析HTTP代理地址出现错误:parse "1.1.1.1:1234": first path segment in URL cannot contain colon
(不过这报错怎么不是连接错误呢?)
如果 IPv6 代理去掉 scheme 部分的话,v6 地址加不加[]括号都会报错。 所以 IPv6 的代理应该怎么写了。另外这个报错是不是连接不上代理服务器的报错啊?
现在单纯运行fake115uploader -v
是不会报错的,因为没有上传,除非代理地址有问题
你上传文件看看吧
还有,现在可能不支持IPv6代理
现在单纯运行
fake115uploader -v
是不会报错的,因为没有上传,除非代理地址有问题
问题是我想代理的不只是 oss 上传部分啊。115 部分也需要代理。如果 -v 能返回结果就说明这部分没走代理。
现在单纯运行
fake115uploader -v
是不会报错的,因为没有上传,除非代理地址有问题问题是我想代理的不只是 oss 上传部分啊。115 部分也需要代理。如果 -v 能返回结果就说明这部分没走代理。
你要上传才会有流量走代理,单纯的-v
参数是什么都不会做的
我的意思是上传走的流量是到阿里的,这边连接 115 API 也要走代理不然被屏蔽的。 难道 -http-proxy 和 -oss-proxy 分开不是这意思吗
你要上传文件,才会有http请求,才会有流量走http代理
意思就是 -v 会无视代理配置和命令参数?
-v
只是多打印一些信息而已,有没有-v
程序的运行逻辑都是一样的
你纠缠-v
没有意义,上传一个文件就知道流量有没有走代理了
export https_proxy=http://127.0.0.1:1010 export http_proxy=http://127.0.0.1:1010
这样不能100%代理成功,传输过程走不了代理