Может программно ПОСТАВИТЬ в Amazon S3 bucket, но не УДАЛИТЬ - PullRequest
0 голосов
/ 12 апреля 2011

Мои пользователи могут программно загружать изображения в корзину AWS S3. Но используя тот же класс php S3 include (который содержит регистр ввода , а также регистр удаления ниже) - они не могут удалить файл:

        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.';
    }

1 Ответ

1 голос
/ 12 апреля 2011

Я могу ошибаться, но похоже, что это может быть проблема с именем сегмента, при удалении вы используете переменную в качестве имени сегмента, где в качестве объекта put вы жестко закодировали имя блока, можете ли вы проверить, что переменная содержит правильное имя корзины?

Edit: Также вы должны попытаться повторить $ fileName в обоих случаях и убедиться, что они абсолютно одинаковы.

...