【问题标题】:AWS client-s3 getSignedUrl equivalentAWS client-s3 getSignedUrl 等效项
【发布时间】:2021-12-29 00:54:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: amazon-web-services aws-sdk


    【解决方案1】:

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

    【讨论】:

    • 最后一行报错,URL.hostname is not implemented
    • @red-devil 我重新测试了它,它继续与最新的 aws-sdk v3 一起正常工作。
    猜你喜欢
    • 2021-07-11
    • 2018-12-03
    • 1970-01-01
    • 2016-09-03
    • 2017-02-23
    • 2021-03-12
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    相关资源
    最近更新 更多