我有一个lambda函数,需要与S3对象关联的URL。
我按照描述设置了S3通知,并查看了记录https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html的模板
我的问题是,有没有办法确定对象的URL链接? (假设客户端具有读权限)
使用该模式是否安全:
https://s3.amazonaws.com/ {bucket name} / {key}
和/或是否有更好的获取信息的方式?
答案 0 :(得分:1)
使用https://s3.amazonaws.com/{bucket}/{key}
是不安全的。
这仅适用于us-east-1区域中的对象 - 原始S3区域 - 仅适用于ipv4。除了在一些有限的情况下,对其他地区的水桶请求将会产生错误。
标准化格式:
https://{bucket}.s3.{region}.amazonaws.com/{key} # ipv4
https://{bucket}.s3.dualstack.{region}.amazonaws.com/{key} # ipv4/v6
如果存储桶名称中包含点,请将存储桶名称放在主机名和密钥...amazonaws.com/{bucket}/{key}
之间,而不是在主机名的开头。
某些地区的遗留主机名也有效,例如将s3.us-west-2
替换为us-west-2中的s3-us-west-2
,或将s3.us-east-1
替换为s3-external-1
。 -east-1但是现在所有地区都支持上面的一致格式。
https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region