使用Cloudup API上传到AWS

时间:2014-03-07 11:46:46

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

我想上传到Cloudup。 API-Dokumentation说:

  

POST / items -d'filename = tobi.jpg& title = Tobi& stream_id = cc3pGD6avN7'

我使用PHP,代码看起来像这样:

<?php    
    $context = stream_context_create(array(
      'http' => array(
          'method' => "POST",
          'header'  => "Authorization: Basic " . base64_encode("$user:$passwd"),
          'content' => "filename=aNewFilee.jpg&stream_id=$STREAM_ID"
      )
    ));


    // Create a File
    $data = file_get_contents("https://api.cloudup.com/1/items", false, $context);
?>

完美的工作,文件在云空间创建。但该文件是“空的”。文档说我们必须将文件上传到AWS S3。所以我从createt文件(包括所有S3-Config字符串)中获取响应,并准备这样的代码:

<form action="$responseUrl" method="post" enctype="multipart/form-data">
  <input type="hidden" name="key" value="$responseKey">
  <input type="hidden" name="AWSAccessKeyId" value="$responsAccessKey">
  <input type="hidden" name="acl" value="public-read">
  <input type="hidden" name="policy" value="$responsePolicy">
  <input type="hidden" name="signature" value="$responseSignature">

  File to upload to S3:
  <input name="file" type="file">
  <br>
  <input type="submit" value="Upload File to S3">
</form>

这就是问题:那不起作用...... 我该如何上传文件?谢谢!

P.s。:不想使用AWS SDK或cURL!

1 个答案:

答案 0 :(得分:1)

看看这个问题 - Upload a file using file_get_contents。答案提供了必要的设置和您丢失的参数,需要与您的数据一起发送。