Hey guys,

 Sorry about that i should have posted the full code to give you some idea
of context. Anyway, here it is:

<?php
  require_once 'sdk.class.php';
if (isset($_POST['submit'])) {

*  $bucket_name = $_POST['$bucket_name'];*
 // Create the S3 Object from the SDK
  *$s3 = new AmazonS3();*

*  $result = $s3->deleteObject(array(*
*    'Bucket' => $bucket_name ));*


 // The response comes back as a Simple XML Object
// In this case we just want to know if everything was okay.
// If not, report the message from the XML response.
 if ((int) $response->isOK()) {
    echo '<center>Deleted Bucket';
    echo '<br /><br />';
    echo '<a href=listbuckets.php>List Buckets</a></center>';
  } else {
    echo (string) $response->body->Message;
  }
 //echo '<br /><br />';
}
?>
<body>
  <center><h3>Delete S3 Bucket</h3>
   <form name="delete_bucket" method="post" action="delete_bucket.php">
    <label for="bucket_name">Bucket Name:</label><br />
  *  <input type="text" id="bucket_name" name="bucket_name" /><br /><br />*
    <input type="submit" name="submit" value="Delete Bucket" />
  </form></center>

So, as you can see I am taking the 'bucket_value' from $_POST and passing
it into the call to S3.

When the form comes up on the web I give it the name of one of my S3
buckets. The result is the following error:

Notice: Undefined index: $bucket_name in /var/www/awssdk/delete_bucket.php
on line 67 Warning: Missing argument 2 for AmazonS3::delete_object() in
/var/www/awssdk/services/s3.class.php on line 1576 Notice: Undefined
variable: filename in /var/www/awssdk/services/s3.class.php on line 1581
Warning: preg_match() expects parameter 2 to be string, array given in
/var/www/awssdk/services/s3.class.php on line 1042 Warning: preg_match()
expects parameter 2 to be string, array given in
/var/www/awssdk/services/s3.class.php on line 1043 Fatal error: Uncaught
exception 'S3_Exception' with message 'S3 does not support "Array" as a
valid bucket name. Review "Bucket Restrictions and Limitations" in the S3
Developer Guide for more information.' in
/var/www/awssdk/services/s3.class.php:548 Stack trace: #0
/var/www/awssdk/services/s3.class.php(1594): AmazonS3->authenticate(Array,
Array) #1 [internal function]: AmazonS3->delete_object(Array) #2
/var/www/awssdk/sdk.class.php(436): call_user_func_array(Array, Array) #3
/var/www/awssdk/delete_bucket.php(72): CFRuntime->__call('deleteObject',
Array) #4 /var/www/awssdk/delete_bucket.php(72):
AmazonS3->deleteObject(Array) #5 {main} thrown in
/var/www/awssdk/services/s3.class.php on line 548



I hope that clarifies my situation a bit. Sorry for not providing that
sooner!

Thanks
Tim


On Sun, Sep 29, 2013 at 1:09 PM, Aziz Saleh <azizsa...@gmail.com> wrote:

> Hi Tim,
>
> Is the call working? Does it actually get deleted?
>
> This could just be an issue (which I see alot) where developers do not
> check for variables or preset them before usage, causing those notices to
> come up (pretty harmless most of the times).
>
> Aziz
>
>
> On Sun, Sep 29, 2013 at 12:30 PM, Tim Dunphy <bluethu...@gmail.com> wrote:
>
>> Hi All,
>>
>>  I am attempting to delete an empty S3 bucket using the AWS PHP SDK.
>>
>>  Here's how they describe the process in the docs:
>>
>> $result = $client->deleteBucket(array(
>>     // Bucket is required
>>     'Bucket' => 'string',
>> ));
>>
>>  You can find the full entry here:
>>
>> AWS PHP SDK Delete Bucket
>> Docs<
>> http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.S3.S3Client.html#_deleteBucket
>> >
>>
>>
>> Here's how I approached it in my code:
>>
>>  $s3 = new AmazonS3();
>>
>>   $result = $s3->deleteObject(array(
>>     'Bucket' => $bucket_name ));
>>
>> But when I run it, this is the error I get:
>>
>> 'Notice: Undefined index: $bucket_name in
>> /var/www/awssdk/delete_bucket.php
>> on line 5 Warning: Missing argument 2 for AmazonS3::delete_object() in
>> /var/www/awssdk/services/s3.class.php on line 1576 Notice: Undefined
>> variable: filename in /var/www/awssdk/services/s3.class.php on line 1581
>> Warning: preg_match() expects parameter 2 to be string, array given in
>> /var/www/awssdk/services/s3.class.php on line 1042 Warning: preg_match()
>> expects parameter 2 to be string, array given in
>> /var/www/awssdk/services/s3.class.php on line 1043 Fatal error: Uncaught
>> exception 'S3_Exception' with message 'S3 does not support "Array" as a
>> valid bucket name. Review "Bucket Restrictions and Limitations" in the S3
>> Developer Guide for more information.' in
>> /var/www/awssdk/services/s3.class.php:548 Stack trace: #0
>> /var/www/awssdk/services/s3.class.php(1594): AmazonS3->authenticate(Array,
>> Array) #1 [internal function]: AmazonS3->delete_object(Array) #2
>> /var/www/awssdk/sdk.class.php(436): call_user_func_array(Array, Array) #3
>> /var/www/awssdk/delete_bucket.php(10): CFRuntime->__call('deleteObject',
>> Array) #4 /var/www/awssdk/delete_bucket.php(10):
>> AmazonS3->deleteObject(Array) #5 {main} thrown in
>> /var/www/awssdk/services/s3.class.php on line 548'
>>
>>
>> This is line 548 in the above referenced file:
>>
>> // Validate the S3 bucket name
>>                 if (!$this->validate_bucketname_support($bucket))
>>                 {
>>                         // @codeCoverageIgnoreStart
>>                         throw new S3_Exception('S3 does not support "' .
>> $bucket . '" as a valid bucket name. Review "Bucket Restrictions and
>> Limitations" in the S3 Developer Guide for more information.');
>>                         // @codeCoverageIgnoreEnd
>>                 }
>>
>>
>>
>>
>> Has anyone played around enough with the AWS SDK to know what I'm doing
>> wrong here? Would anyone else be able to hazard a guess?
>>
>> Thanks
>> Tim
>> --
>> GPG me!!
>>
>> gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
>>
>
>


-- 
GPG me!!

gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B

Reply via email to