我正在尝试将一个对象放入 S3 进行重定向。我可以毫无问题地创建对象,但是在设置元数据时,301 重定向不起作用。元数据密钥已创建,但这是用户定义的而不是系统定义的。用户定义的元数据以 x-awz-meta 开头,系统定义的数据以 x-amz 开头。
因此,系统定义的重定向键是 x-amz-website-redirect-location,但是您似乎无法使用 JavaScript SDK 创建它。当您设置元数据时,AWS 会附加用户定义的前缀。
使用此代码。
command = new PutObjectCommand({
Bucket: bucketParams.Bucket,
Key: cliParams.routingRules[0].old_url,
Body: '',
Metadata: {
'x-amz-website-redirect-location': cliParams.routingRules[0].new_url`
}
});
创建的密钥是用户定义的 x-amz-meta-x-amz-website-redirect-location。如果我省略 x-amz 前缀。
command = new PutObjectCommand({
Bucket: bucketParams.Bucket,
Key: cliParams.routingRules[0].old_url,
Body: '',
Metadata: {
'website-redirect-location': cliParams.routingRules[0].new_url
}
});
创建的密钥是用户定义的 x-amz-meta-website-redirect-location。带有 x-amz-meta 的密钥不会进行 301 重定向。
密钥需要由系统定义,即 x-amz-website-redirect-location。
有人知道如何设置吗? 谢谢
我尝试为每个选项设置元数据键。相同的结果总是获得用户定义的元数据密钥
本作品不使用元数据
command = new PutObjectCommand({
Bucket: bucketParams.Bucket,
Key: cliParams.routingRules[0].old_url,
Body: '',
WebsiteRedirectLocation:cliParams.routingRules[0].new_url
});