Ho creato un URL $ firmato per Amazon s3 e si apre perfettamente nel browser.Verifica se il file esiste su Amazon s3 URL firmato
http://testbucket.com.s3.amazonaws.com/100-game-play-intro-1.m4v?AWSAccessKeyId=AKIAJUAjhkhkjhMO73BF5Q&Expires=1378465934&Signature=ttmsAUDgJjCXepwEXvl8JdFu%2F60%3D
** nome Benna e accesskey cambiato in questo esempio
Sto provando comunque utilizzare per la funzione qui sotto per controllare (utilizzando ricciolo) che il file esista. Non riesce la connessione CURL. Se sostituisco $ URL sopra con l'url di un'immagine esterna a s3, allora questo codice funziona perfettamente.
So che esiste il file in Amazzonia, ma non può funzionare perché questo codice non riesce se si utilizza un URL firmato come sopra
Tutte le idee?
Grazie
Ecco il mio codice.
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;
}
Quando uso questo codice per verificare se il file esiste su s3 con l'url firmato poiché è un bucket privato (cioè privo di criteri pubblici), fallisce sempre con 'connection failed' che indica che la connessione CURL non è riuscita. –
Scusa se questo è facilmente risolvibile con l'SDK PHP di AWS, ma sto cercando di farlo funzionare senza l'SDK poiché sto aggiungendo la funzionalità in un plugin per wordpress. Grazie –