Amazon S3的数据传输和GET请求之间的区别

ari*_*123 4 bandwidth amazon-s3

我在查看帐单时发现,Data Transfer的价格几乎占了我账单的100%,所以我想确保我完全理解GET请求意味着Data Transfer包含什么。仅出于上下文考虑,我将网站托管在其他服务器上,并将其连接到S3来存储用户生成的文件。这些文件可供下载。数据传输是仅覆盖用于下载文件的带宽,还是用于显示站点上s3上存储的文件之一。因此,例如,如果我在s3上存储了一个mp3文件,并在要播放的网站上显示了该文件(不包括下载内容),那是否只是发送了GET请求以获取并显示该文件?对我来说,定义有点模棱两可。任何帮助!?

Mic*_*bot 5

GET每个请求的费用是用于处理实际要求的文件(检查它是否存在,检查权限,从存储读取它,并准备将其返回给请求者)收费,每次下载的时间。

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

如果您在网站上添加了指向文件的链接,但用户没有下载该文件,并且浏览器未加载该文件以进行自动播放或预加载,或类似的操作,那么S3对此一无所知,这样就不会向您收费。如果您使用的是预先签名的URL,这也是正确的-除非实际使用,否则它们不会产生任何费用,因为它们是在服务器上生成的。

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

如果您在S3之前使用CloudFront,以便您的图像或下载链接指向CloudFront,则您只需从S3支付请求费用,而不是从S3支付转移费用,因为CloudFront会向您收取转移费用,而不是S3 (此外,每个请求还需支付CloudFront费用,但是由于CloudFront的数据传输费用在某些地区比S3便宜,因此无论如何都不一定是不好的交易)。