Amazon S3的数据传输和GET请求之间的差异

时间:2015-10-14 18:32:04

标签: amazon-s3 bandwidth

我正在查看我的账单时注意到我的数据传输价格差不多100%我的账单,所以我想确定我完全理解数据传输需要什么,GET请求。 仅针对上下文,我将我的网站托管在不同的服务器上,并将其连接到S3以存储用户生成的文件。这些文件可供下载。数据传输是否仅覆盖用于下载文件的带宽,还是用于显示存储在我网站上的s3上的其中一个文件。因此,例如,如果我在我的s3上存储一个mp3文件,并在网站上显示该文件以进行播放(不包括下载),那么只是发送一个GET请求来获取并显示该文件吗?对我来说,这些定义很少含糊不清。任何帮助!?

1 个答案:

答案 0 :(得分:3)

GET每请求费用是处理文件实际请求的费用(检查是否存在,检查权限,从存储中提取,并准备将其返回给请求者),每次它被下载了。

数据传输费用是指每次下载文件内容时,通过互联网将文件内容从S3实际传输到请求者。

如果您在网站上包含指向某个文件的链接但该用户未下载并且浏览器未将其加载以自动播放或预加载,或类似内容,则S3不会知道任何内容关于那个,所以你不会被收费。如果您使用的是预签名网址,那也是如此 - 除非实际使用这些网址,否则不会产生任何结算,因为它们是在您的服务器上生成的。

如果在页面上包含图像,并且图像在S3中,则每次查看页面时,除非浏览器缓存了图像,否则您需要为请求和传输付费。

如果您在S3前面使用CloudFront,以便您的图像或下载链接指向CloudFront,您只需从S3支付S3的请求费用,而不是转账费用,因为CloudFront会向您收取转账费用而不是S3(以及另外一个CloudFront每请求费用,但由于CloudFront的数据传输费用在某些地区比S3稍微便宜,所以无论如何都不一定是坏事)。