Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Php - Amazon s3 how do I check my connection is success or not

I am using amazon-php-sdk. In my application I'm accepting key and secret value from a form and passing for connecting to Aws. Here is my code.

<?php
require 'aws-autoloader.php';
use Aws\S3\S3Client;
try {
    $s3Client = S3Client::factory(array(
        'key' => 'my key',
        'secret' => 'my secret key'
    ));
}
catch(S3Exception $e) {

   echo 'Msg' . $e->getMessage();
} 
?>
  1. How do I check whether the connection is success or not ?
  2. How can I check the already created object using the passed key so I that I don't want to create the object again. I need to create the object only if the passed key is different from the already created one.
like image 324
binoy Avatar asked Mar 31 '15 06:03

binoy


People also ask

How do you check S3 endpoint is working?

Testing the VPC Endpoint for S3 To check that your VPC Endpoint for S3 is working correctly, find the URL of your target bucket in the AWS console and use the hostname there as the target of a traceroute command on one of your virtual machines in your SDDC.

Can I ping S3?

You cannot "ping a bucket" because bucket names are merely logical containers served by Amazon S3. There is no direct relationship between IP addresses and buckets. Resolving the DNS name of an S3 bucket would only return the address of an Amazon S3 server.


1 Answers

As Michael pointed out, you have to make an actual request to check the connection.AWS discourages any unnecessary validation requests which will affect the performance of your application and your usage bill.

But if you need to validate you can use ListBucket or HEAD request on a bucket.

Checkout this best practises article.

require 'vendor/autoload.php';     
use Aws\S3\S3Client;

try {

// Instantiate the S3 client with your AWS credentials
$s3Client = S3Client::factory(array(
    'credentials' => array(
        'key'    => 'YOUR_AWS_ACCESS_KEY_ID',
        'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
    )
));

$buckets = $s3Client->listBuckets();


}
catch(Exception $e) {

   exit($e->getMessage());
} 

To answer your second question.You can use doesObjectExist function which returns a boolean.

like image 200
Arun Unnikrishnan Avatar answered Oct 17 '22 08:10

Arun Unnikrishnan