我有以下代码作为后端示例的一部分,用于生成有效15分钟的下载链接。
$url = "{$bucket}/{$key}";
$request = $this->s3Client->get($url);
return $this->s3Client->createPresignedUrl($request, '+15 minutes');
根据我的理解,这会向亚马逊提出网络请求,我需要为每个页面加载生成大约20-30个下载链接。
那么我如何不滥用亚马逊API,同时还允许客户下载文件?我能想到的两个选项是:
我感兴趣的是:
答案 0 :(得分:2)
这不是问题,因为使用适用于PHP的AWS开发工具包创建预签名网址不向AWS发出请求。您可能还会发现S3Client::getObjectUrl()
方法更容易使用,因为它是您现在正在做的事情的抽象。