我将文件上传到我已创建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,还是必须从我的分发主机名和文件路径构建它?
答案 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
。就是这样!
屏幕截图如下:
享受! :)