Я попытался сгенерировать pre-signed URL
со сроком действия 7dsys. (Говорит, что максимальная продолжительность составляет 7 дней, предварительно подписанный URL-адрес AWS S3 без срока действия дата)
# It is called and retruned in AWS Lambda
boto3.client('s3').generate_presigned_url(
'get_object',
Params={'Bucket': bucket, 'Key': object_key},
ExpiresIn=(60*60*24*7) # 7days
)
Однако кажется, что pre-signed URL
сохраняется не на 7 дней, а всего на несколько часов. После этого pre-signed URL
просто возвращает формат XML.
<Error>
<Code>ExpiredToken</Code>
<Message>The provided token has expired.</Message>
.
.
.
</Error>
Кажется, даже время истечения каждый раз разное, иногда 5 часов, иногда 12 часов.
Я не знаю почему.
import boto3 from botocore.client import Config # Get the service client with sigv4 configured s3 = boto3.client('s3', config=Config(signature_version='s3v4')) # Generate the URL to get 'key-name' from 'bucket-name' # URL expires in 604800 seconds (seven days) url = s3.generate_presigned_url( ClientMethod='get_object', Params={ 'Bucket': 'bucket-name', 'Key': 'key-name' }, ExpiresIn=604800 ) print(url)
- person user3821178   schedule 18.02.2021