如何在Amazon Cloudfront API上执行POST请求

时间:2012-05-21 15:38:03

标签: api amazon-cloudfront

如何对Amazon Cloudfront API发出POST控制请求?在文档中它说:

Send a CloudFront control API request that is similar to the following example.

POST /2012-05-05/origin-access-identity/cloudfront HTTP/1.1
[Required headers]  

<?xml version="1.0" encoding="UTF-8"?>
<CloudFrontOriginAccessIdentityConfig xmlns="http://cloudfront.amazonaws.com/doc/2012-05-05/">
  <CallerReference>20120229090000</CallerReference>   
  <Comment>Your comments here</Comment>
</CloudFrontOriginAccessIdentityConfig>

我环顾四周寻找一些信息,我不知道该怎么做。这是我可以通过像here这样的卷曲请求做的事情吗?

任何帮助非常感谢!我觉得此刻有点失落。

非常感谢!

更新

我现在做这样的事情,仍然没有工作......有什么帮助吗?

<?php
$xml = 'POST /2012-05-05/origin-access-identity/cloudfront HTTP/1.1
Host: cloudfront.amazonaws.com
Authorization: [AWS authentication string]
Date: [time stamp]
[Other required headers]    

<?xml version="1.0" encoding="UTF-8"?>
<CloudFrontOriginAccessIdentityConfig xmlns="http://cloudfront.amazonaws.com/doc/2012-05-05/">
   <CallerReference>ref</CallerReference>
   <Comment>The comment.</Comment>
</CloudFrontOriginAccessIdentityConfig>
';

$opts = array(
    'http'=>array(
        'method'=>'POST',
        'header'=>"Content-Type: text/plain\r\n" .
            $auth."\r\n",
        'content'=>$xml
    )
);

$context = stream_context_create($opts);
$url = 'https://cloudfront.amazonaws.com/2012-05-05/origin-access-identity/cloudfront';
$fp = fopen($url, 'r', false, $context);
fpassthru($fp);
$response = stream_get_contents($fp);
print_r($response);
fclose($fp);
?>

1 个答案:

答案 0 :(得分:1)