AWS client-s3 getSignedUrl 等效

AWS client-s3 getSignedUrl equivalent

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

我现在正在尝试从 aws-sdk 迁移到 @aws-sdk/client-s3。我想保持相同的结构,但我在 the documentation.

中找不到这样的命令

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

是否有任何(非 hacky)方法来做到这一点?

编辑:依靠 this,我应该在 @aws-sdk/client-s3 的顶部 使用 @aws-sdk/s3-request-presigner 来获得预签名 urls .

您可以使用 @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);