2011-04-18 54 views
1

使用PHP亚马逊SDK我能成功使用下面的载体作用来设置一个URL 30秒访问:get_object_url($bucket, $filename, $preauth = 0, $opt = null)指定30s ACL不能与Cloudfront配合使用?

$s3->get_object_url($results['s3.bucket.name'], $results['s3.file.name'], '30 seconds'); 

现在,这个问题是它返回一个梦幻般的网址:

"s3.url": "http://THECOOLEST.BUCKET.INTHEWORLD.EVER.s3.amazonaws.com/2011/04/18/image/png/8ba2d302-a441-45d4-8354-08e2b7e1a325.png?AWSAccessKeyId=XXXXXXXXXXXXXXXXX&Expires=1303162244&Signature=AWdUnHSaIBDmRcbwo2RFSUQaqBM%3D", 

当我将URL更改为我们用于cloudfront的CNAME时,ACL不起作用。任何人都知道如何配置CNAME配置为get_object_url

回答

0

Cloudfront和S3是两回事。

您需要为S3存储桶设置一个CNAME。有关更多信息,请参阅AWS文档:http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?VirtualHosting.html#VirtualHostingCustomURLs

+0

Geoff,CNAME已配置。 ACL不适用于CNAME网址......仅适用于默认网址。这也是一个云端问题......不是S3特定的问题。 – sdolgy 2011-04-19 08:24:54

+1

@sdolgy - 你的问题仍然令人困惑。 'get_object_url'在S3中为文件生成一个url,但稍后您将讨论Cloudfront CNAME。 CNAMES和Url for Cloudfront和S3是不同的。要为Cloudfront文件生成一个url,你可以在'cloudfront.class.php'中使用'get_private_object_url'。见http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#m=AmazonCloudFront/get_private_object_url – 2011-04-19 08:44:06

+0

那里你去...这就是我正在寻找的答案。为跟进Geoff而欢呼。 – sdolgy 2011-04-21 19:18:48