मैंने अमेज़ॅन एस 3 के लिए एक हस्ताक्षरित $ यूआरएल बनाया है और यह ब्राउज़र में पूरी तरह से खुलता है।जांचें कि क्या अमेज़ॅन एस 3 पर हस्ताक्षर किए गए हस्ताक्षर किए गए यूआरएल
http://testbucket.com.s3.amazonaws.com/100-game-play-intro-1.m4v?AWSAccessKeyId=AKIAJUAjhkhkjhMO73BF5Q&Expires=1378465934&Signature=ttmsAUDgJjCXepwEXvl8JdFu%2F60%3D
** बाल्टी नाम और accesskey इस उदाहरण
लेकिन मैं तो (कर्ल का प्रयोग करके) कि फ़ाइल मौजूद है की जाँच करने के लिए नीचे दिए गए समारोह का उपयोग करने के कोशिश कर रहा हूँ में बदल दिया है। यह कर्ल कनेक्शन विफल रहता है। यदि मैं एस 3 के बाहर किसी छवि के यूआरएल के साथ उपरोक्त $ यूआरएल को प्रतिस्थापित करता हूं तो यह कोड पूरी तरह से काम करता है।
मैं जानता हूँ कि फ़ाइल अमेज़न में मौजूद है, लेकिन बाहर काम नहीं कर सकता क्यों इस कोड अगर विफल रहता है
कोई भी विचार ऊपर के रूप में एक हस्ताक्षर किए यूआरएल का उपयोग कर?
धन्यवाद
यहां मेरा कोड है।
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;
}
जब मैं इस कोड का उपयोग यह जांचने के लिए करता हूं कि फ़ाइल हस्ताक्षरित यूआरएल के साथ एस 3 पर मौजूद है या नहीं, क्योंकि यह एक निजी बाल्टी है (यानी कोई सार्वजनिक नीति नहीं है) यह हमेशा 'कनेक्शन विफल' के साथ विफल रहता है जो कि कर्ल कनेक्शन स्वयं विफल रहा है। –
क्षमा करें मैं इसे आसानी से एडब्ल्यूएस PHP एसडीके के साथ हल कर रहा हूं लेकिन मैं इसे एसडीके के बिना काम करने की कोशिश कर रहा हूं क्योंकि मैं एक वर्डप्रेस प्लगइन में कार्यक्षमता जोड़ रहा हूं। धन्यवाद –