Şu anda komut aramak için AJAX kullanarak S3 benim sunucuda bir dosya yüklemek için cURL kullanıyorum.
Yani şu var:
$fullfilepath = '/server/sitepath/files/' . $_POST['file'];
$upload_url = 'https://'.$_POST['buckets'].'.s3.amazonaws.com/';
$params = array(
'key'=>$_POST['key'],
'AWSAccessKeyId'=>$_POST['AWSAccessKeyId'],
'acl'=>$_POST['acl'],
'success_action_status'=>$_POST['success_action_status'],
'policy'=>$_POST['policy'],
'signature'=>$_POST['signature'],
'Content-Type'=>$_POST['Content-Type'],
'file'=>"@$fullfilepath"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $upload_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ancak, gönderdiğinde aşağıdaki gibi bir S3 hata alıyorum ve ben buna JSON geçen değilim çünkü ben neden emin değilim.
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidPolicyDocument</Code><Message>Invalid Policy: Invalid JSON.</Message><RequestId>B29469C6151BE0E8</RequestId><HostId>BFPk6W2kt1b6hTtx0mEq6dWdN/IhO0gNR5bct//7LAOwJxm1C3PrxS4RPv1blzJ8</HostId></Error>
Ben son saat ya da öylesine için google'dan ve onu anlamaya görünüyor olamaz. Ben Array alanların sırasını değiştirirseniz, o bana farklı bir hata veriyor - Ben yayınlanmıştır alanların sırası nasılsa önemli olduğuna inanıyoruz.
herhangi bir yardım çok takdir!
C