S3上传后如何返回Cloudfront网址?

时间:2014-05-08 13:55:05

标签: php amazon-web-services amazon-s3

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

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

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

2 个答案:

答案 0 :(得分:3)

您无法从S3获得云端URL,它是一项不同的服务。如果您使用putObject,那么您已经知道文件路径(Key中指定的值)。

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

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

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

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

答案 1 :(得分:0)

I guess there's is no way to resolve an associated cloudfront url for the bucket。是的,它是!

CloudFront CDN缓存。您无需获取s3存储桶/文件的URL,因为CloudFront会为您关注此事。

此处有关AWS CloudFront的详细信息。

按照步骤操作,查看step 24。就是这样!

屏幕截图如下:

enter image description here enter image description here

享受! :)