代码之家  ›  专栏  ›  技术社区  ›  senty

我应该将cloudfront一起用作s3中敏感文件的临时url吗

  •  0
  • senty  · 技术社区  · 6 年前

    我有一个项目,我在服务器本身存储文件。存储空间在增加,所以我需要用一个桶。我觉得S3是个不错的选择。

    问题是pdf文件是敏感的,我不想公开它们。我读到一个名为cloudfront的服务,但是后来也读到了laravel temporaryurl的新特性。

    据我所知,我不应该只使用s3,但我也应该使用临时url。我也需要使用cloudfront吗?所以 s3 -> CloudFront -> TemporaryUrl 是吗?或者TemporaryURL的目的是在两者之间消除CloudFront?

    那么这就足够使用临时url方法了吗?

    // For saving the file:
    Storage::put('file.jpg', $contents, 'private');
    
    // For retrieving:
    if ($user->has_permission) {
    
       $url = Storage::disk('s3')->temporaryUrl(
          'file1.jpg', Carbon::now()->addMinutes(5)
       );
    }
    

    我很困惑,找不到关于这个话题的任何演练。那么,我应该如何存储和服务敏感数据与拉威尔5.6?我很乐意澄清

    1 回复  |  直到 6 年前
        1
  •  1
  •   rkj    6 年前

    你可以用 CloudFront 还有拉维尔的 TemporaryUrl 一起。为此,您只需要告诉laravel s3驱动程序使用 云锋 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 像这样的url

    AWS_ENDPOINT="https://mycloud.cloudfront.net"
    

    现在当你用拉维的 临时URL 它将为您提供cloudfront url。

    编辑: (评论后)

    我需要对敏感数据使用cloudfront吗

    CloudFront用于内容交付网络(CDN)。因此,它与安全性无关,它使用s3 bucket作为源文件,并根据它的配置从那里获取服务器文件。

    S3足够安全吗?

    s3有足够的文件权限系统来保护您的文件,只需正确配置它。您可以在s3上单独存储文件,然后使用laravel临时url。它在内部所做的只是创建一个带有到期时间的aws签名url。所以,是的,你可以用它。如果有一天你需要加快你的文件传送速度,那么创建 云锋 并将其用作端点

    推荐文章