我正在将文件上传到我为其创建了Cloudfront发行版的S3存储桶。我正在使用Aws\S3\S3Client类。

putObject上传后,响应对象和getObjectUrl方法都将对象的URL返回为https://s3-eu-west-1.amazonaws.com/mybucket/path/myfile.jpg。我正在尝试获取Cloudfront网址,该网址类似于https://d111111111ck.cloudfront.net/path/myfile.jpg

有什么方法可以直接获取此url,还是必须从我的分发主机名和文件路径构建它?

最佳答案

您不会从S3获得Cloudfront URL,这是一项不同的服务。如果您使用putObject,则您已经知道文件路径(在Key中指定的值)。

只需返回文件路径前面的cloudfront URL,例如...

$filePath = '/path/file.jpg';

$client->putObject(array(
    'Bucket' => 'mybucket',
    'Key' => $filePath,
    'SourceFile' => $fileSource,
    'ACL' => 'public-read'
));

return 'https://d111111111ck.cloudfront.net' . $filePath;

关于php - S3上传后如何返回Cloudfront网址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23543856/

10-15 09:46