使用 Cloudfront/CDN 预签名的 S3 URL

Posted

技术标签:

【中文标题】使用 Cloudfront/CDN 预签名的 S3 URL【英文标题】:Pre-Signed S3 URLs with Cloudfront/CDN 【发布时间】:2017-02-26 21:06:41 【问题描述】:

是否可以为 CDN(即 CloudFront?)生成预签名 URL,或者我可以将预签名 URL 参数附加到 CloudFront URL 以替代使用?

例子:

string url = amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest);

返回:

url = "https://bucket-name.s3.amazonaws.com/file.txt?AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Expires=1111111111&Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

我可以获取 URL 参数并附加到相应的 CloudFront URL:

https://00000000000000.cloudfront.net/file.txt?AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Expires=1111111111&Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

这是否允许下载文件?

【问题讨论】:

那行得通吗?还是您发现了更好的方法? 【参考方案1】:

仅供参考,如果您只想要网络优化,而不想要边缘缓存,您也可以考虑使用“Amazon S3 Transfer Acceleration”:https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html

这使您可以继续使用 S3 签名,而不必实施 Cloudfront 签名。

请在此处查看我的答案以获取更多详细信息:https://***.com/a/54139603/8046487

【讨论】:

以上是关于使用 Cloudfront/CDN 预签名的 S3 URL的主要内容,如果未能解决你的问题,请参考以下文章

使用预签名的 url PUT 到 S3 会出现 403 错误

JavaScript 使用预签名 URL 保存到 S3

是否可以通过 CloudFront CDN 进行 AWS 内容路由?

使用其预签名 URL 从 AWS s3 读取文件的内容

如何使用预签名的 url 将对象放入 amazon s3?

放入 S3 预签名 URL 时如何修复“403 Forbidden”