我希望在用户完成PayPal交易后,在我的网站上提供要下载的音频文件。它的商业方面已经编写并正在运行 - 该站点使用Zend Framework在PHP中构建。
因此,我不会对存储和带宽产生大量费用,我想将这些文件托管在像Amazon S3这样的服务上。但是,我不确定这是否适合我的要求。一旦PayPal交易完成,我想为用户分配某种唯一的ID密钥,将它们发送到他们输入密钥的位置,并且他们购买的文件可供下载。密钥将过期。
编写生成,存储和删除密钥的代码没有问题。我的问题是:如何保护/隐藏存储在Amazon S3上的文件,然后将其提供给具有URL的授权用户,该URL随后变为无效,同时还直接从亚马逊传输文件,而不是通过我的服务器?
这可能,还是我需要另一种解决方案?
答案 0 :(得分:3)
Amazon S3具有“预签名URL”功能,允许您构建URL以访问受其他方式保护的内容,并具有时间限制。请参阅the Query String Request Authentication Alternative documentation。
答案 1 :(得分:-1)
不可否认,我对Amazon S3知之甚少,但如果您将文件存储在S3中的数据库中并编写了一个页面,该页面将在给定正确密钥的情况下从数据库中提供文件。然后你要做的就是在S3上发布一个网络服务,你可以从你的网站上调用一个给定的密钥,然后将用户重定向到提供文件的页面。