Ich bin mit Amazon Clouddrive Für API bauen: https://developer.amazon.com/public/apis/experience/cloud-drive/content/nodesWie PHP cURL wie als cURL-Befehlszeile
Wenn ich Test-Upload-Datei mit Clouddrive cURL-Befehlszeile, alles in Ordnung ist. Wie:
curl -v -X POST --form 'Metadaten = { "name": "test.pdf", "Art": "FILE"}' --form ‚content = @ test. pdf‘ 'https://content-na.drive.amazonaws.com/cdproxy/nodes?localId=linkvipdata&suppress=deduplication' --header "Authorization: Inhaber Atza | IQEBLjAsAhQsfI0yWoBK-FYhjUGJ1DBP1 ..." --header "Content-Type: multipart/form-data"
Aber PHP ist nicht in Ordnung und immer zurück Fehler 500 ({"Nachricht": "Interner Fehler"})
PHP-Code ist:
$url='https://content-na.drive.amazonaws.com/cdproxy/nodes?localId=testupload&suppress=deduplication';
$file=realpath('test.pdf');
$fields[]=array(
'metadata'=>array(
'name'=>'testupload',
'kind'=>'FILE'
)
);
$fields[]=array(
'content'=>'@'.$file
);
$fields_string = json_encode($fields);
$headers=array();
$headers[]='Authorization: Bearer '.$auth;
$headers[]='Content-Type: multipart/form-data';
$headers[]='Host: content-na.drive.amazonaws.com';
//open connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$result = curl_exec($ch);
$httpstatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
print_r($result);
//print_r($httpstatus);
curl_close($ch);
Wie PHP cURL von cURL Befehlszeile wie oben zu erstellen?