Ich habe eine signierte $ URL für Amazon s3 erstellt und es öffnet sich perfekt im Browser.Prüfen, ob die Datei auf Amazon s3 Signierte URL
http://testbucket.com.s3.amazonaws.com/100-game-play-intro-1.m4v?AWSAccessKeyId=AKIAJUAjhkhkjhMO73BF5Q&Expires=1378465934&Signature=ttmsAUDgJjCXepwEXvl8JdFu%2F60%3D
** Bucket Name und accesskey geändert in diesem Beispiel
ich aber versuche dann unter Verwendung der Funktion überprüfen (mit curl), dass die Datei vorhanden ist. Es schlägt die CURL-Verbindung fehl. Wenn ich $ URL oben durch die URL eines Bildes außerhalb von s3 ersetze, dann funktioniert dieser Code perfekt.
Ich weiß, dass die Datei in amazon existiert, aber kann nicht arbeiten, warum dieser Code schlägt fehl, wenn ein signiertes url wie oben
Irgendwelche Ideen mit?
Danke
Hier ist mein Code.
function remoteFileExists($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//don't fetch the actual file, only get header to check if file exists
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, true);
$result = curl_exec($ch);
curl_close($ch);
if ($result !== false) {
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$ret = true;
} else {
$ret = false;
}
} else {
$ret='connection failed';
}
return $ret;
}
Wenn ich diesen Code verwende, um zu prüfen, ob die Datei auf s3 mit signierter URL vorhanden ist, da es ein privater Bucket ist (dh keine öffentliche Richtlinie), schlägt sie immer fehl, wenn die Verbindung fehlgeschlagen ist. –
Tut mir leid, ich kann das mit dem AWS PHP SDK lösen, aber ich versuche, es ohne das SDK zu machen, da ich die Funktionalität in ein Wordpress Plugin einfüge. Danke –