Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Nodejs AWS SDK S3生成预签名URL大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用NodeJS AWS SDK生成预先签名的S3 URl.文档给出了 example of generating a presigned URL. @H_944_5@ @H_944_5@这是我的确切代码(省略了敏感信息):

@H_944_5@
const AWS = require('aws-sdk')

const s3 = new AWs.S3()
AWs.config.update({accessKeyId: 'id-omitted',secretAccessKey: 'key-omitted'})

// Tried with and without this. Since s3 is not region-specific,I don't
// think it should be necessary.
// AWs.config.update({region: 'us-West-2'})

const myBucket = 'bucket-name'
const myKey = 'file-name.pdf'
const signedUrlExpireSeconds = 60 * 5

const url = s3.getSignedUrl('getObject',{
    Bucket: myBucket,Key: myKey,Expires: signedUrlExpireSeconds
})

console.log(url)
@H_944_5@生成的URL如下所示:

@H_944_5@
https://bucket-name.s3-us-West-2.amazonaws.com/file-name.pdf?AWSAccessKeyId=[access-key-omitted]&Expires=1470666057&Signature=[signature-omitted]
@H_944_5@我正在将该URL复制到我的浏览器中并获得以下响应:

@H_944_5@
<Error>
  <Code>NoSuchBucket</Code>
  <message>The specified bucket does not exist</message>
  <BucketName>[bucket-name-omitted]</BucketName>
  <requestId>D1A358D276305A5C</requestId>
  <HostId>
    bz2OxmZcEM2173kXEDbKIZrlX508qSv+CVydHz3w6FFPFwC0CtaCa/TqDQYDmHQdI1oMlc07wWk=
  </HostId>
</Error>
@H_944_5@我知道存在桶.当我通过AWS Web GUI导航到此项目并双击它时,它会打开带有URL的对象并且工作正常:

@H_944_5@
https://s3-us-West-2.amazonaws.com/[bucket-name-omitted]/[file-name-omitted].pdf?X-Amz-Date=20160808T141832Z&X-Amz-Expires=300&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=[signature-omitted]&X-Amz-Credential=ASIAJKXDBR5CW3XXF5VQ/20160808/us-West-2/s3/aws4_request&X-Amz-SignedHeaders=Host&x-amz-security-token=[really-long-key]
@H_944_5@所以我被引导相信我必须对我如何使用SDK做错事.

解决方法

达斯汀,@H_944_5@ @H_944_5@您的代码是正确的,仔细检查以下内容

@H_944_5@>您的存储桶访问策略.>通过API密钥获得您的存储桶权限.>您的API密钥和秘密.>您的水桶名称和钥匙.

大佬总结

以上是大佬教程为你收集整理的node.js – Nodejs AWS SDK S3生成预签名URL全部内容,希望文章能够帮你解决node.js – Nodejs AWS SDK S3生成预签名URL所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。