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

use*_*606 1 java amazon-s3

我试图将截止日期设置为2100年,但它表示它无效.或者有可能以某种方式使其永久化?

Mic*_*bot 9

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

如果您不熟悉V2和V4之间的差异,区分它们的一种简单方法是V2 URL包括&Expires=V4 URL使用时&X-Amz-Expires=.

但重要的是,如果您停用用于对URL进行签名的IAM用户凭据(访问密钥/密钥),则使用任一算法的签名将立即失效...您应该在某些时候计划这样做,因为凭据轮换被认为是最佳做法(或者,如果不是这样,那么因为您的凭证可能有一天会受到损害,或被怀疑已被泄露).

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

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

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

HTTP/1.1 302 Found
Location: https://...generated-signed-url-here...
Run Code Online (Sandbox Code Playgroud)