我正在寻找在s3上设置下载空间。亚马逊S3存储敏感文件
我正在向我的网站的授权用户发送电子邮件,以便他们可以点击链接并下载文件。
我想让这个文件完全隐藏在公共视图中,但是如果我这样做,我将如何在我的网站数据库上为特定用户分配/'标记'文件?
我正在寻找在s3上设置下载空间。亚马逊S3存储敏感文件
我正在向我的网站的授权用户发送电子邮件,以便他们可以点击链接并下载文件。
我想让这个文件完全隐藏在公共视图中,但是如果我这样做,我将如何在我的网站数据库上为特定用户分配/'标记'文件?
从AWS S3 Share an Object with Others:
默认情况下所有的对象都是私有的。只有对象所有者拥有访问这些对象的权限 。但是,对象所有者可以通过使用他们自己的安全凭证创建预签名的URL 来选择性地与其他人共享对象,以授予时间限制的权限 以下载对象。
对于每个想要共享的对象,您需要生成一个预先签名的URL,并带有过期期限。这个URL然后可以发送给用户。这是how to generate a pre-signed URL using PHP的例子:
$cmd = $s3Client->getCommand('GetObject', [
'Bucket' => 'my-bucket',
'Key' => 'testKey'
]);
$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');
// Get the actual presigned-url
$presignedUrl = (string) $request->getUri();
我究竟是如何将能够与特定 用户在我的网站的数据库指派/“标记”的文件?
如果要跟踪哪些文件已被授予对特定用户的访问权限,可以创建一个存储userId,存储桶/密钥,预签名URL和expirationDate的表。这将允许您和/或用户稍后参考URL。这些文件可以根据expirationDate从表格中老化。