0

私のユーザーは、プログラムで画像をAWSS3バケットに正常にアップロードできます。ただし、同じphp S3クラスインクルード(以下のputケースとこのdeleteケースが含まれています)を使用すると、ファイルを削除できません。

        case 'DELETE':
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
        break;

ですから、私がスクリプトに欠けているものを鋭い目で見ることができるかどうか疑問に思っています。エラーメッセージが表示されません。-ありがとう

   //THIS WORKS

              //include the S3 class
            if (!class_exists('S3'))require_once('S3.php');

    //GET keys   
   include_once "scripts/S3k.php";  


//instantiate the class
$s3 = new S3(awsAccessKey, awsSecretKey);       

   //assigns file location var to get
    $fileTempName = $DestinationFile;  
  //Assigns S3 path/file name
    $fileName = $path.$user_id."/".$fileName;

//Move the file over to S3
    if ($s3->putObjectFile($fileTempName, $mybucket, $fileName, S3::ACL_PUBLIC_READ)) { 
    echo " file uploaded";
}               


//THIS  doesn't  WORKS

//include the S3 class
if (!class_exists('S3'))require('S3.php');

//get KEYS
include "scripts/S3k.php";  

 //instantiate the class
    $s3 = new S3(awsAccessKey, awsSecretKey);       

//Assigns S3 path/file name
    $fileName = $path.$user_id."/".$image_link;

//Deletes the file in S3
     if ($s3->deleteObject($mybucket, $fileName)) {
    echo "Deleted file.";
}               

//And this GET script doesn't work either.
  $image_link = "1/Bowery_3_58x46app.jpg";
  $pathS3 = "http://d21v2uajc20x0x.cloudfront.net/myGallerist/artWorkImages/";

//include the S3 class
if (!class_exists('S3'))require_once('S3.php');

include_once "scripts/S3k.php"; 

//instantiate the class
$s3 = new S3(awsAccessKey, awsSecretKey);       

// Get the file from S3

    if ($s3->getObject($mybucket, $pathS3.$image_link, "tempImage/".$image_link )) {        

         } else {

            // Couldn't move the file over. 
             $msgToUser = 'No file was uploaded.';
    }
4

1 に答える 1

1

私は間違っている可能性がありますが、バケット名に問題があるようです。削除では、バケット名として変数を使用していますが、putオブジェクトのようにバケット名をハードコーディングしています。変数に正しいものが含まれていることを確認してください。バケット名?

編集:また、両方の場合で$ fileNameをエコーし​​て、それらが完全に同じであることを確認する必要があります。

于 2011-04-11T21:22:46.670 に答える