![为什么我不能不使用 AuthParam 直接从 Oracle 网站下载 jdk?](https://linux22.com/image/595077/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%B8%8D%E8%83%BD%E4%B8%8D%E4%BD%BF%E7%94%A8%20AuthParam%20%E7%9B%B4%E6%8E%A5%E4%BB%8E%20Oracle%20%E7%BD%91%E7%AB%99%E4%B8%8B%E8%BD%BD%20jdk%EF%BC%9F.png)
即使用以下命令下载,为什么无法下载该文件?
wget http://download.oracle.com/otn-pub/java/jdk/6u35-b10/jdk-6u35-linux-i586.bin
以下命令有效,但一段时间后该 AuthParam 可能不起作用,为什么?
wget http://download.oracle.com/otn-pub/java/jdk/6u35-b10/jdk-6u35-linux-i586.bin?AuthParam=1346955572_27e44512fe8ef5cb920c4c329e5f0fd8
这个 AuthParam 选项是如何实现的?为什么没有这个参数就无法下载?为什么我只能使用资源管理器获取此参数?
oracle 服务器处理 wget 请求时是否使用 rewrite?
为什么同一个命令在一小时后不起作用,AuthParam 的值是否过期了?
那么服务器如何检查AuthParam的值是否过期?
wget http://download.oracle.com/otn-pub/java/jdk/6u35-b10/jdk-6u35-linux-i586.bin?AuthParam=1346955572_27e44512fe8ef5cb920c4c329e5f0fd8
--2012-09-07 03:51:01-- http://download.oracle.com/otn-pub/java/jdk/6u35-b10/jdk-6u35-linux-i586.bin?AuthParam=1346955572_27e44512fe8ef5cb920c4c329e5f0fd8
Resolving download.oracle.com... 23.67.251.50, 23.67.251.57
Connecting to download.oracle.com|23.67.251.50|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2012-09-07 03:51:01 ERROR 403: Forbidden.
@KJ-SRS 是那种用来判断 AuthParam 是否正确的 CGI 程序吗?是否可以仅使用 wget 命令下载 jdk 包,而无需在资源管理器中获取该 AuthParam
wget -O jre-6u35-linux-i586.binhttp://javadl.sun.com/webapps/download/AutoDL?BundleId=68284 无法获取该 jdk:(
wget -O jre-6u35-linux-i586.bin http://javadl.sun.com/webapps/download/AutoDL?BundleId=68284
--2012-09-07 12:27:37-- http://javadl.sun.com/webapps/download/AutoDL?BundleId=68284
Resolving javadl.sun.com... 137.254.16.64
Connecting to javadl.sun.com|137.254.16.64|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/6u35-b10/jre-6u35-linux-i586.bin?AuthParam=1346992177_356c459806fdabc05df2dc04a480b08a&GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/6u35-b10/jre-6u35-linux-i586.bin&File=jre-6u35-linux-i586.bin&BHost=javadl.sun.com [following]
--2012-09-07 12:27:37-- http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/6u35-b10/jre-6u35-linux-i586.bin?AuthParam=1346992177_356c459806fdabc05df2dc04a480b08a&GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/6u35-b10/jre-6u35-linux-i586.bin&File=jre-6u35-linux-i586.bin&BHost=javadl.sun.com
Resolving sdlc-esd.sun.com... 72.246.31.82, 72.246.31.80
Connecting to sdlc-esd.sun.com|72.246.31.82|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 21697122 (21M) [application/x-sdlc]
Saving to: `jre-6u35-linux-i586.bin'
100%[===================================================================================================================>] 21,697,122 16.3M/s in 1.3s
2012-09-07 12:27:39 (16.3 MB/s) - `jre-6u35-linux-i586.bin' saved [21697122/21697122]
答案1
AuthParam 参数向 Oracle 的 Web 服务器表明您同意其许可条款。
事实上,如果您在wget
不使用 AuthParam 的情况下运行,您将被重定向到一个download-fail
HTML 文件。如果您打开该 HTML 文件,您将看到类似这样的文本:“要从 Oracle 技术网下载产品,您必须同意 OTN 许可条款。”
这可能只是 Oracle Web 服务器与传统 Sun Web 服务器之间的一些混淆。如果您访问http://java.com/en/download/manual_v6.jsp找到你要下载的东西(Linux 自解压二进制文件),你会看到一个链接http://javadl.sun.com/webapps/download/AutoDL?BundleId=68284如果您运行 wget,您将能够下载您的文件,尽管文件名中带有一堆垃圾字符。
答案2
有很多更清洁的方式使用标题来做到这一点:
Cookie: oraclelicense=accept-securebackup-cookie;
答案3
运行后,输入并接受条款和条件,然后使用 googlechrome 下载通过签名的页面,然后暂停下载,复制签名的路径,然后使用 wget 压缩 wget -chttp://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz?AuthParam=1398796143_4bdf9e4adc1ad94302b811789dd4b85esta功能失败,请尝试下载并刷新时间
[改进翻译]
以下操作似乎有效:我点击接受条款和条件,然后使用 Google Chrome 开始下载。然后我暂停下载,复制下载链接,然后使用 wget 开始下载:
wget-c http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz?AuthParam=1398796143_4bdf9e4adc1ad94302b811789dd4b85esta
我还需要看看一小时后下载是否会中断。