操作期间S3签名的URL是否会过期?

时间:2019-12-12 18:21:58

标签: amazon-web-services amazon-s3 pre-signed-url

我有一个过程,我得到一个签名的URL,该URL的存储桶在5分钟后过期。一旦获得签名的URL,我就开始将文件上传到存储桶。

可以说,完全上传文件需要6分钟。会发生什么?

到期时间是指该操作(例如下载,上传)何时开始或该操作完成?

2 个答案:

答案 0 :(得分:1)

  

到期时间是指该操作(例如下载,上传)何时开始或该操作完成?

都是:-)
如果该操作是原子操作,并且在链接有效时启动,则即使该链接在该过程中变为无效,此操作也将完成。
但是,如果操作是多步操作(例如,上传多部分文件),则使用无效链接执行的步骤将失败。

Source of truth.

答案 1 :(得分:0)

根据您的用例,我以这样的方式对环境进行了模拟:启动上传时,没有错误,但是url过期后上传失败。

以下是我使用预先签名的URL上传时和上传的URL过期时收到的响应:

    <?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>AccessDenied</Code>
    <Message>Request has expired</Message>
    <Expires>2019-12-13T06:45:29Z</Expires>
    <ServerTime>2019-12-13T06:45:33Z</ServerTime>
    <RequestId>8D0F75A23E9A1EC2</RequestId>
    <HostId>CNhlDK4RRVowLZSHdSF7pPJksIhnZdh99M3Sc9aBqnyCxLDlGG3XYMV0GMIdpz1pgM+HKLxsKVE=</HostId>
</Error>

因此很明显,无论上载POST还是PUT,带预签名的url在上传时(如果该URL在那里在那里过期)将不会在AWS s3存储桶控制台中创建任何文件,并且AWS也会给出响应,告知Request Expired < / p>