需要生成用于访问私有S3对象的预签名URL,其可配置访问时间范围为1-6天。使用一个角色(在EC2上),我能够生成URL,然后在它失败之前很长一段时间访问它#34; Invalid Token" (尽管url的有效期限有效)。
通过一些检查发现其原因,角色的访问ID,密钥最多旋转12小时,另一个选项是使用IAM USER,其中密钥不会过期。
我确实尝试了同样但运气不佳。
session = boto3.session.Session(aws_access_key_id=getkval(KEY_ID), aws_secret_access_key=getkval(A_KEY),region_name='ap-south-1')
s3Client = session.client('s3', config= boto3.session.Config(signature_version='s3v4'))
url=s3Client.generate_presigned_url('get_object', Params = {'Bucket': filebucket, 'Key': key}, ExpiresIn = 86400*int(days))
这会生成一个带有与用户关联的Access密钥的预签名URL(可以在链接中看到它),但是它会在到期时间到期。可能有什么不对?