我在查看我的账单时发现,数据传输的价格几乎占了我账单的 100%,因此我想确保我准确理解数据传输需要什么,即 GET 请求。 仅供引用,我将我的网站托管在不同的服务器上,并将其连接到 S3 来存储用户生成的文件。这些文件可供下载。数据传输是否仅涵盖用于下载文件的带宽,或者还用于在我的网站上显示我的 s3 上存储的文件之一。例如,如果我在 s3 上存储一个 mp3 文件,并在网站上显示该文件以供播放(不包括下载),这是否只是发送一个 GET 请求来获取和显示该文件?对我来说,这些定义并不含糊。有什么帮助吗!?
最佳答案
GET
每次请求费用是处理文件实际请求的费用(检查文件是否存在、检查权限、从存储中获取文件以及准备将其返回给请求者) ,每次下载时。
数据传输费用是指每次下载文件时,通过 Internet 将文件内容从 S3 实际传输到请求者的费用。
如果您在网站上包含指向文件的链接,但用户没有下载该文件,并且浏览器没有加载它以自动播放或预加载它,或类似的情况,S3 将不知道任何信息关于这一点,这样您就不会被计费。如果您使用预签名网址,情况也是如此 - 除非实际使用,否则不会产生任何计费,因为它们是在您的服务器上生成的。
如果您在页面上包含图像,并且该图像位于 S3 中,则每次查看该页面时,您都需要为请求和传输付费,除非浏览器已缓存该图像。
如果您在 S3 之前使用 CloudFront,以便您的图像或下载链接指向 CloudFront,您只需支付 S3 的请求费用,而不是 S3 的传输费用,因为 CloudFront 会向您收取传输费用而不是 S3(此外,CloudFront 按请求收费,但由于 CloudFront 的数据传输费用在某些地区比 S3 稍便宜,所以无论如何,这不一定是一个糟糕的交易)。
关于amazon-s3 - Amazon S3 的数据传输和 GET 请求之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33132987/