私は現在、管理者がデータベースエントリを間接的に編集して写真をアップロードできるように、自分のサイトのバックエンドページのコーディングに取り組んでいます。私はAmazonS3を使用して画像をホストし、画像の読み込みを高速化しています。そのため、画像をアップロードするときは、最初に画像をサーバーにアップロードしてから、そこからAmazonサーバーに送信する必要があります。画像はサーバーに正しくアップロードされていますが、Amazonのサーバーに正しく到達していません。Amazonのコピーにアクセスしようとすると、存在しないようです。画像のアップロードに使用しているコードは次のとおりです。
//Set up image validator
$upload = new Zend_File_Transfer();
$upload->addValidator('ImageSize', false, array('minwidth' => 100,
'maxwidth' => 1000,
'minheight' => 100,
'maxheight' => 1000), 'image')
->addValidator('Extension', false, 'jpg')
->addValidator('Count', false, array('min'=>0, 'max'=>2));
//Set up Amazon class
$s3 = new Zend_Service_Amazon_S3($my_aws_key, $my_aws_secret_key);
if($upload->isUploaded('image')){ //Pic was uploaded
if($upload->isValid('image')){ //Pic is valid
echo "Pic provided is valid.";
$upload->addFilter('Rename',array('target'=>BASE_PATH . "/public_html/items/{$item_id}_nsa.jpg",'overwrite'=>true));
$upload->receive();
$pic = BASE_PATH . "/public_html/items/{$item_id}_nsa.jpg";
try{
$s3->putObject("media.completeset.com/images/items/{$item_id}_nsa.jpg", $pic,
array(Zend_Service_Amazon_S3::S3_ACL_HEADER => Zend_Service_Amazon_S3::S3_ACL_PUBLIC_READ,
Zend_Service_Amazon_S3::S3_CONTENT_TYPE_HEADER => "image/jpeg"));
echo "Pic is uploaded.";
}
catch(Exception $e){
echo "Exception: ".$e->getMessage();
}
}
else{
echo "Pic is invalid.";
}
}
else{
echo "Pic isn't uploaded";
}
そして私のエラーの例。ローカル作業コピーとAmazonコピー。私はこれまでAmazonと仕事をしたことがないので、問題が何であるか、それが何であるかを理解する方法、またはそれを解決する方法がわかりません。これらの3つのポイントのいずれかに関する助けをいただければ幸いです。