Laravel FileSystem创建CloudFront签名的URL

时间:2018-12-09 15:24:58

标签: laravel amazon-cloudfront

我正在与CloudFront合作,以从S3提供内容。

仅S3

Storage::disk('s3')->url($image_path); // return a normal s3 url - correct


Storage::disk('s3')->temporaryUrl($image_path, now()->addMinutes(30)) // return S3 signed url - correct

使用CloudFront(已启用“限制存储桶访问”,“正在使用已签名的URL或已签名的Cookie来限制“查看器访问”)

Storage::disk('s3')->url($image_path); // return a normal CloudFront url - correct

Storage::disk('s3')->temporaryUrl($image_path, now()->addMinutes(30)) // return S3 signed url - incorrect . I expect CloudFront signed url

这是我对文件系统的配置

's3' => [
            'driver' => 's3',
            'key' => env('S3_KEY'),
            'secret' => env('S3_SECRET'),
            'region' => env('S3_REGION'),
            'bucket' => env('S3_BUCKET'),
            'url' => env('CLOUDFRONT_URL'),
        ],

1 个答案:

答案 0 :(得分:0)

没有足够的代表。发表评论。

S3 url用于对S3端点进行临时签名。 Laravel本身不具备对云端URL进行签名的功能。

我找到了可以做到这一点的包。

https://github.com/dreamonkey/laravel-cloudfront-url-signer