当前位置: 首页 > 知识库问答 >
问题:

使wget在3xx重定向后重试原始URL

汤飞翮
2023-03-14

我有一个服务,可以将用户重定向到临时预签名的AWS下载。这些是大文件,通常为5-10GB。为了防止下载共享,我们有一个相对较短(30秒)的有效寿命。

原来,当我们注意到这个问题时,我们正在使用302找到临时重定向。一个小小的研究似乎表明我们应该使用307临时重定向。但是,这并不能解决wget的问题。对于笑和傻笑,我们尝试了303看其他,但这也不起作用。

有没有人知道get wget是如何重试原始URL而不是重定向的URL的?

下面是一个wget示例日志

--2016-07-06 10:29:52--https://service.s3.amazonaws.com/file.zip?awsaccesskeyid=xxxx&signature=xxxx&expires=1468000000

正在解析service.s3.amazonaws.com(service.s3.amazonaws.com)...54.231.12.129

正在连接到service.s3.amazonaws.com(service.s3.amazonaws.com)54.231.12.129:443....连接。

HTTP请求已发送,正在等待响应...200 OK

长度:2070666907(1.9G)[申请/压缩]

保存到:“file.zip”

共有1个答案

景康安
2023-03-14

我有一个类似的问题,和@Panzerito类似的答案,但是我把它分解成一个脚本,我称之为loopdone

#!/bin/bash
until `$1`; do sleep 1; echo restarting; done

然后,我可以执行loopdone“wget-c http://my.url/”(包括引号)来强制它一次又一次地运行(并继续运行,除非服务器不支持它),直到退出代码为0。(意思是没有错误)

 类似资料:
  • 这似乎是一个非常基本的流程,而且Laravel有很多很好的基本解决方案,我觉得我错过了一些东西。 用户单击需要身份验证的链接。Laravel的身份验证过滤器启动并将它们路由到登录页面。用户登录,然后转到他们试图在“身份验证”过滤器启动之前进入的原始页面。 有没有一个好方法可以知道他们最初想要到达的页面?由于Laravel是拦截请求的人,我不知道它是否会在用户登录后跟踪某个地方以方便路由。 如果没有

  • 我正在开发一个应用程序,它允许用户浏览网站并从任何页面登录(登录链接位于公共标题中)。成功登录后,用户当前将从登录页面重定向到根url。 redirect_to原始页面会更友好。我试图将原始页面的命名路由存储到会话中,但这些似乎是对象,因此无法通过。此外,并非所有路由都带有指定的助手。另一方面,当我将文字路径作为字符串传递给redirect_to时,例如“订单/索引”,Rails将 /action

  • 在我的Laravel应用程序中,我有一个只能由Auth用户访问的私人页面。我也使用社交登录,所以当用户未登录就进入私人页面时,Laravel会将用户发送到登录页面,成功登录后,用户会被发送回原始目的地(私人页面)。只有当用户通过Laravel内置认证系统登录时,但当用户通过社交登录方法登录时,用户将被引导到主页。 这是我登录后的社交登录处理程序: 如果用户在会话中出现,我如何将其发送到原始目的地,

  • 我正在尝试创建无状态安全性,从而将JWT令牌存储在Cookie而不是SESSION中。 问题是,如果没有会话,就不知道原始请求(在身份验证页面弹出之前)。所以在第77行这里savedRequest是空的。 这看起来很奇怪,我想我做错了什么。如何允许页面重定向到登录无状态会话后请求的原始URL? > 我禁用会话 然后,我创建了一个自定义的AuthenticationSuccessHandler,它扩

  • 问题内容: 我希望ajax发布上的成功可以转到主页。由于某种原因,我一直做错了。知道我应该怎么做才能解决这个问题吗? 阿贾克斯 问题答案: 希望以上内容对我有所帮助,因为我遇到了同样的问题

  • 问题内容: 我目前在 此URL实际上按照以下路由指示加载Module.js类: 这包含在index.js文件中定义的和元素中。 Module类具有和方法。这些设置了记录2的初始详细信息和装入信息。到目前为止一切正常。 现在,我的问题是,在Module.js的孙组件中,我使用以下Redirect重定向到另一个页面,例如第3页: 构造函数或componentWillMount无法运行,因此记录#3无法