Amazon web services AmazonS3-一个对象的多个键

Amazon web services AmazonS3-一个对象的多个键,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我有一个S3存储桶,里面有超过1亿个对象,每个对象都像往常一样有一个唯一的键。我想知道是否有办法为其中一些对象指定另一个键。大概是这样的: x-amz-meta-KeyAlias=Key2 键1--->Object1 键2--->Object2 Key3--->Object2(我想添加这个) 我在AWS文档中查找了这一点,但找不到任何相关内容 另一种方法可以是使用Key3创建一个虚拟对象,该对象重定向到实际对象。这会更容易吗?键是对象的唯一标识符: 从 每个AmazonS3对象都有数据、一个键

我有一个S3存储桶,里面有超过1亿个对象,每个对象都像往常一样有一个唯一的键。我想知道是否有办法为其中一些对象指定另一个键。大概是这样的:

x-amz-meta-KeyAlias=Key2
键1--->Object1

键2--->Object2

Key3--->Object2(我想添加这个)

我在AWS文档中查找了这一点,但找不到任何相关内容


另一种方法可以是使用Key3创建一个虚拟对象,该对象重定向到实际对象。这会更容易吗?

键是对象的唯一标识符:

每个AmazonS3对象都有数据、一个键和元数据。对象键(或 密钥名称)唯一标识存储桶中的对象

另一种方法是使用Key3创建一个虚拟对象 重定向到实际对象。那会更容易吗

是的,您可以这样做:您可以使用创建Key3,并在元数据中定义一个键/值对,如下所示:

x-amz-meta-KeyAlias=Key2
该元数据表示此密钥是另一个密钥的别名

然后,您的应用程序可以读取该元数据,然后将请求从Key3重定向到Key2


如果bucket作为公共网站公开,您还可以实现某种形式的重定向更新:这适用于任何对象类型/扩展,当使用网站端点时

为什么这样做?您是否可以添加一个数据库,例如dynamodb,以将一个或多个键映射到S3中的对象?据我所知,您试图实现的目标是不可能的,但我们正在努力避免必须查找数据库来确定映射。如果我可以提前为同一个文件生成额外的密钥,我就不需要维护任何东西。你的内容可以公开访问吗?如果不是,您使用的是预签名URL还是其他机制?您使用的是http还是https?从注释中可以看到,有一个解决方案,其中包含空的虚拟对象和一个执行预期操作的
x-amz-website-redirect-location
标题。。。但是,您是否可以在没有舷外组件的情况下本机使用此功能取决于您如何使用bucket,如果您没有,还有一些变通方法,我需要制定详细信息,以便制定一个好的答案。内容可以通过https公开访问。但是,由于我们没有托管网页,因此没有为网站托管启用my bucket。我不确定为此目的启用网站托管(如果可能)是否是一个好主意。@SeckinTozlu-如果已通过HTTPS提供,这不是一个静态网站吗?你能提供更多关于你的用例的信息吗?根据这个文档:如果你有一个网站端点,你可以让amazon通过设置一个特殊的标题将一个页面重定向到另一个页面。rest端点不存在此功能?据我所知,这仅适用于作为网站的S3存储桶,并且仅适用于.html页面。您的对象主要是网页吗?经过测试和验证,这完全符合预期
HTTP/1.1 301永久移动
位置:/此处显示的目标对象路径
。请记住,必须启用网站托管,并且必须将请求发送到
bucket.s3网站-[region].amazonaws.com
端点。REST端点忽略了
x-amz-website-redirect-location
标题。您的术语有点偏离。。。REST/API端点是
bucket.s3[-region].amazonaws.com
,网站端点是
bucket.s3-website-[region].amazonaws.com
(对于启用了网站托管功能的bucket)。有关术语的确认以及两个端点的功能集之间的差异,请参见。