Amazon s3 用の署名付き $URL を作成しましたが、ブラウザで完全に開きます。
http://testbucket.com.s3.amazonaws.com/100-game-play-intro-1.m4v?AWSAccessKeyId=AKIAJUAjhkhkjhMO73BF5Q&Expires=1378465934&Signature=ttmsAUDgJjCXepwEXvl8JdFu%2F60%3D
**この例ではバケット名とアクセスキーが変更されています
ただし、以下の関数を使用して(curlを使用して)ファイルが存在することを確認しようとしています。CURL 接続に失敗します。上記の $URL を s3 以外の画像の URL に置き換えると、このコードは完全に機能します。
ファイルが amazon に存在することは知っていますが、上記のように署名付き URL を使用すると、このコードが失敗する理由がわかりません
何か案は?
ありがとう
これが私のコードです。
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;
}