【问题标题】:AWS SDK JS v3 Get presigned url react front endAWS SDK JS v3 获取预签名 url 反应前端
【发布时间】:2022-06-22 18:20:35
【问题描述】:

为 PutObject 生成预签名 URL

使用客户端和命令 ES6 示例:

   // ...
   import { S3Client, PutObjectCommand} from "@aws-sdk/client-s3";
   // ...
   const command = new PutObjectCommand(putObjectParams);
   const url = await getSignedUrl(client, command, { expiresIn: 3600 });

参考:https://aws.amazon.com/blogs/developer/generate-presigned-url-modular-aws-sdk-javascript/

谁能解释一下 putObjectParams 和 client 应该是什么? 我正在尝试获取预签名的 url aws sdk js v3。用于从浏览器上传图像。 找不到任何例子。

【问题讨论】:

    标签: reactjs amazon-web-services amazon-s3 sdk


    【解决方案1】:

    参考-https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_s3_request_presigner.html

    import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
    import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
    const client = new S3Client(clientParams);
    const command = new GetObjectCommand(getObjectParams);
    const url = await getSignedUrl(client, command, { expiresIn: 3600 });
    

    下面是我的使用方法

    import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
    import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
    const client = new S3Client({ 
      region: config.region,
      credentials: { 
        accessKeyId: config.accessKeyId,  
        secretAccessKey: config.secretAccessKey,
      },
    });
    const command = new GetObjectCommand({
        Bucket: 'bucket-name',
        Key:'/path/img.jpg',
        ACL:'public-read',
      });
    const url = await getSignedUrl(client, command, { expiresIn: 3600 });
    

    使用 typescript 以便 IntelliSense 可以显示 S3Client 和 GetObjectCommand 的所有可能值

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 2016-09-21
      • 2016-12-14
      • 2020-10-18
      • 2021-06-21
      • 2022-01-03
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多