我有一个项目,我将文件存储在服务器本身中。存储空间正在增加,因此我需要使用存储桶。我以为s3是必经之路。
问题是pdf文件敏感,我不想将其公开。我读到了一项名为CloudFront的服务,但同时也了解了Laravel TemporaryUrl的新功能。
据我了解,我不应该只使用s3,而我也应该使用TemporaryUrl。我也需要使用CloudFront吗? :
呢?还是TemporaryUrl的目的是消除两者之间的CloudFront?
使用TemporaryUrl方法就足够了吗?
s3 -> CloudFront -> TemporaryUrl
我很困惑,真的找不到关于该主题的演练。那么,如何使用Laravel 5.6存储和提供敏感数据?我很高兴得到澄清
答案 0 :(得分:1)
您可以同时使用CloudFront
和laravel的TemporaryUrl
。为此,您只需要告诉laravel s3驱动程序使用CloudFront
url作为config/filesystem.php
中的端点。像这样
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
]
现在在您的.env
文件中,像这样在其中定义您的clouldFront
网址
AWS_ENDPOINT="https://mycloud.cloudfront.net"
现在,当您使用laravel的TemporaryUrl
时,它将为您提供cloudFront网址。
编辑 :(评论后)
我是否需要使用CloudFront来处理敏感数据
CloudFront用于内容交付网络(CDN)。因此,它与安全性无关,它使用S3存储桶作为源,并根据它的配置从中使用服务器文件。
S3是否足以保证安全性?
S3具有足够的文件许可权系统,可以保护您的文件,只需对其进行正确配置即可。您可以将文件私下存储在S3,然后使用laravel TemporaryUrl。它在内部所做的只是创建一个带有到期时间的AWS签名URL。因此,是的,您可以使用它。如果有一天需要加快文件传输速度,请创建CloudFront
并将其用作端点