如何使用AWS.ManagedUpload获取预签名的URL

时间:2019-05-11 10:24:07

标签: node.js amazon-s3 aws-sdk

我正在使用AWS.S3.ManagedUpload将文件上传到AWS S3。一切都很简单,直到我想获取上传文件的预签名URL。

我正在创建AWS.S3.ManagedUpload,并启动发送方法。

   const params = {
        Bucket: process.env.S3_BUCKET_NAME,
        Key: fileKey,
        Body: fileStream,
      }

     const upload = new AWS.S3.ManagedUpload({ params })

      upload.send((err, data) => {
        if (err) {
          console.log(err)
        }
        // handle successful upload
      })
    }

结果是我收到了带有非单个URL的对象。因此,只有在我要避免使用公共存储桶的情况下,才能访问它。

1 个答案:

答案 0 :(得分:0)

我找到了简单的解决方案。上传完成后,您需要使用AWS.S3.getSignedUrl。

upload.send((err, data) => {
  if (err) {
    // handle error 
  }
  const signedUrl = s3.getSignedUrl('getObject', params) 
  ...

参数为{ Bucket, Key, Expires }