重新生成签名URL时出现S3 URL问题

问题描述

我正在使用S3存储桶来存储我的应用程序的图像。第一次将图像上传到图像时,我将生成以下格式的签名URL:

https://app-images.s3.amazonaws.com/test/-26403.blob?AWSAccessKeyId=<key>&Expires=<timestamp>&Signature=<signature>

请注意,上述URL中没有区域代码。由于URL的到期时间为7天,因此我将在到期前重新生成已签名的URL。这次,URL模式如下所示。

https://app-images.s3.eu-west-1.amazonaws.com/test/-26403.blob?AWSAccessKeyId=<key>&Expires=<timestamp>&Signature=<signature>

请注意,上述URL中包含区域代码。 当我尝试在浏览器上呈现这些图像时,使用此URL会产生CORB问题。但是,当我从URL上方删除区域代码并在浏览器中呈现它时,它就起作用了。

两次,我都使用相同的函数生成如下所示的签名URL。

const getFileUrl = async (payload) => {
    let params = {
        Bucket: s3BucketName,Key: `${payload.folderName}/${payload.fileName}`,Expires: 7 * 24 * 60 * 60,};
    
    try {
        const url = await s3.getSignedUrl('getobject',params);
        return { url,fileName: payload.fileName };
    } catch (e) {
        return Boom.badRequest(e.message);
    }
};

我担心的是,我不想URL不一致。两次,URL模式应该相同并且应该在浏览器中正确呈现。

有人可以帮助我实现这一目标吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)