首页 > 解决方案 > AWS client-s3 getSignedUrl 等效项

问题描述

我的客户目前正在使用包中的getSignedUrlPromise访问某些对象aws-sdk。请求是从后端完成的,签名的 url 返回给客户端,一切都很好。

我现在正试图从迁移aws-sdk@aws-sdk/client-s3. 我想保持相同的结构,但我在文档中找不到这样的命令。

我很确定@aws-sdk/client-s3能够返回签名的网址

有没有(非hacky)方法可以做到这一点?

编辑:依靠这个,我应该@aws-sdk/s3-request-presigner 在上面使用@aws-sdk/client-s3来获取预签名的网址。

标签: amazon-web-servicesaws-sdk

解决方案


您可以使用@aws-sdk/s3-request-presigner。例如:

const { getSignedUrl } = require("@aws-sdk/s3-request-presigner");
const { S3Client, GetObjectCommand } = require("@aws-sdk/client-s3");

const clientParams = { region: "us-east-1" };
const getObjectParams = { Bucket: "mybucket", Key: "dogs/snoopy.png" };

const client = new S3Client(clientParams);
const command = new GetObjectCommand(getObjectParams);
const url = await getSignedUrl(client, command, { expiresIn: 3600 });
console.log(url);

推荐阅读