目前,我们通过 EC2 实例将 GET(下载)请求代理到 S3。这样做的原因是因为我们想知道特定文件有多少流量。
现在我们希望能够不使用该代理。但我们仍然需要这些信息。有没有办法做到这一点?
我想要的是对特定服务器的 webhook/回调。或者也许从日志文件中实时/实时读取它。
有没有办法做到这一点?一段时间以来一直在寻找答案,但也许我们没有朝着正确的方向思考。
目前,我们通过 EC2 实例将 GET(下载)请求代理到 S3。这样做的原因是因为我们想知道特定文件有多少流量。
现在我们希望能够不使用该代理。但我们仍然需要这些信息。有没有办法做到这一点?
我想要的是对特定服务器的 webhook/回调。或者也许从日志文件中实时/实时读取它。
有没有办法做到这一点?一段时间以来一直在寻找答案,但也许我们没有朝着正确的方向思考。
打开 S3 存储桶的日志记录,然后(可选)将客户端直接发送到存储桶。
日志格式包括“发送的字节数”以及“对象大小”和许多其他好东西,包括远程 IP、引用页面和带有查询字符串的请求 URI。
日志当然不是实时的,但您会发现每隔几分钟就会有一个新日志放入您的存储桶中。检索、解析、存储感兴趣的内容(如果您愿意),然后如果您不想支付日志上的每月存储费用,则将其删除。
保持请求 URL 相同,指向您的 EC2 实例。但是,不要通过您的 EC2 实例将 S3 中的内容代理到客户端,而是让您的 EC2 实例将用户重定向到 S3 URL。
使用过期的签名 URL 进行重定向。您的 EC2 实例可以为每个请求创建适当的 URL,并在几分钟后到期。这样,客户端就有时间获取 S3 资源,但将其添加为书签将不起作用,因为当他们稍后尝试时,它已经过期。所以他们总是必须去您的 EC2 实例获取资源,允许您控制和记录访问,但您不必代理内容本身。