s3 重定向 aws javascript sdk。 x-amz-meta 附加到 x-amz-website-redirect-location

问题描述 投票:0回答:1

我正在尝试将一个对象放入 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。

有人知道如何设置吗? 谢谢

我尝试为每个选项设置元数据键。相同的结果总是获得用户定义的元数据密钥

amazon-s3 redirect http-status-code-301
1个回答
0
投票

本作品不使用元数据

        command = new PutObjectCommand({
        Bucket: bucketParams.Bucket,
        Key: cliParams.routingRules[0].old_url,
        Body: '',
        WebsiteRedirectLocation:cliParams.routingRules[0].new_url

    });
© www.soinside.com 2019 - 2024. All rights reserved.