当前位置: 首页 > 面试题库 >

亚马逊s3生成的链接最长的到期时间是多少?

许寒
2023-03-14
问题内容

我已经尝试将有效期设置为2100年,但它表示无效。还是有可能使它永久化?


问题答案:

对于使用S3签名版本2签名的URL,时间限制似乎是2038年Unix时代的结束,但是对于签名版本4,该限制为7天,因为V4中的签名密钥本身的最大有效性为7天。

如果您不熟悉V2和V4之间的区别,那么一种区分它们的简单方法是V2 URL包含&Expires=而V4 URL使用&X-Amz-Expires=

但是重要的是,如果您停用了用于对URL进行签名的IAM用户凭据(访问密钥/秘密),则使用这两种算法的签名都会立即失效……由于凭据的轮换,您应该在某些时候计划这样做被认为是最佳做法(或者,如果不是这样,则是因为您的凭据有一天可能被泄露,或者被怀疑已经泄露)。

因此,不应将S3对象的签名URL视为永久的。

如果不需要公开对象,那么下一个最佳方法是让您的应用程序(或您控制的任何HTTP端点)验证用户的下载对象的权限(可能基于应用程序的cookie),然后生成短暂的签名URL并返回重定向。浏览器应该立即跟随它并获取对象,但不要缓存重定向,因为您已经表明原始URL应该用于带有302响应代码的后续请求。

应用程序的HTTP响应中值得注意的标头如下所示:

HTTP/1.1 302 Found
Location: https://...generated-signed-url-here...


 类似资料:
  • 问题是,我正在尝试获取Amazon S3存储库中的文件。我收到了来自亚马逊的消息“InvalidAccessKeyId” 您提供的AWS访问密钥ID不存在于我们的记录中。(服务:Amazon S3;状态代码:403;错误代码:InvalidAccessKeyId;请求ID:62781C914754D8ED;S3扩展请求ID:fhv2t247XoEK99IZ6/f8lcWUz7IWlGybGfb2H

  • 我能够从EC2实例连接到VPC中的ElastiCache Redis实例。但我想知道是否有办法连接到Amazon EC2实例之外的ElastiCache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例。 当前在我的本地设置中尝试时: 我只在一段时间后才会暂停。

  • S3前缀的定义到底是什么。 假设我有以下S3结构: sample.jpg?的前缀是什么 将是前缀或整个路径,直到将是前缀(即) 因为每个前缀都有读写限制。

  • 问题内容: 我有一个800KB的JPG文件。我尝试上传到S3,并不断收到超时错误。你能弄清楚哪里出了问题吗?800KB很小,无法上传。 错误消息:在超时期限内未读取或写入到服务器的套接字连接。空闲连接将关闭。 HTTP状态码:400 AWS错误代码:RequestTimeout 问题答案: IOUtils.toByteArray是否有可能正在耗尽您的输入流,以便在进行服务调用时不再需要从中读取任何

  • 我正在尝试将图像上传到我的AWS存储桶,我创建了一个新用户授予他完整的控制权 但是,在上传时,我收到以下错误: 05-27 07:09:47.219: W/System.err(20594):com.amazonaws.services.s3.model.Amazon S3异常:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:访问被拒绝;请求ID:),S3扩展请求ID:/=

  • 当用户上传图片时,我正在动态调整图像大小。原始图片存储在Amazon S3上一个名为djangobucket的bucket中。在这个桶中,包含数千个文件夹。 每个文件夹都以用户命名。我不必担心存储桶创建或文件夹创建,因为所有这些都是从客户端处理的。 下图为: 如您所见,Bob有许多图片。一旦用户将图片上传到S3,我就会通过URL通过Django下载它,在这种情况下,它将是:http://s3.am