我们公司在S3的私人存储桶中有文件和图像 . 当用户请求图像或文件时,我们对它们进行身份验证,然后运行与此类似的代码(这只是文档中的测试代码) .

$cmd = $s3Client->getCommand('GetObject', [
    'Bucket' => 'my-bucket',
    'Key'    => 'testKey'
]);

$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');

// Get the actual presigned-url
$presignedUrl = (string) $request->getUri();

我们遇到了速度问题,因为可以加载多个图像,因此每个图像都会生成预先签名的请求 . 为了解决这个问题,我设置了一个cloudfront发行版并将我的私有存储桶作为原点 .

我感到困惑的是我需要在代码中更改实际路由到Cloudfront的内容 . 我是否在某处传递了预先签名的URL? Cloud 端是否认识到此URL来自我的私人存储桶?有没有办法在没有预先签署的请求的另一个签名策略的情况下自动执行此操作?

不幸的是,code examples并没有真正提供有关该怎么做的信息 . 我该怎么处理?