为什么我不能不使用 AuthParam 直接从 Oracle 网站下载 jdk?

为什么我不能不使用 AuthParam 直接从 Oracle 网站下载 jdk?

即使用以下命令下载,为什么无法下载该文件?

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-failHTML 文件。如果您打开该 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

我还需要看看一小时后下载是否会中断。

相关内容