muszę utworzyć podpisaną $ URL dla Amazon S3 i otwiera się doskonale w przeglądarce.Sprawdź, czy plik istnieje na Amazon S3 Podpisano URL
http://testbucket.com.s3.amazonaws.com/100-game-play-intro-1.m4v?AWSAccessKeyId=AKIAJUAjhkhkjhMO73BF5Q&Expires=1378465934&Signature=ttmsAUDgJjCXepwEXvl8JdFu%2F60%3D
** nazwa łyżki i accesskey zmieniło w tym przykładzie
Ja jednak próbuje następnie użyć funkcji poniżej, aby sprawdzić (za pomocą curl), czy plik istnieje. Nie powiedzie się połączenie CURL. Jeśli zastąpię $ URL powyżej adresem URL obrazu spoza s3, ten kod działa idealnie.
wiem, czy plik istnieje w Amazon, ale nie może pracować się, dlaczego ten kod nie powiedzie się w przypadku korzystania z podpisaną adres jak wyżej
Jakieś pomysły?
Dzięki
Oto mój kod.
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;
}
Kiedy używam tego kodu, aby sprawdzić, czy plik istnieje na s3 z podpisanym url jak to jest prywatny wiadro (czyli nie polityka publiczna) to zawsze kończy się niepowodzeniem z „Połączenie nie powiodło się” wskazuje połączenie CURL sama nie powiodło się. –
Przykro mi to łatwo rozwiązać z AWS PHP SDK, ale staram się, aby pracować bez SDK jak dodaję funkcjonalności do wtyczki wordpress. Dzięki –