Harshit Chopra
Harshit Chopra

Reputation: 3

aws-sdk 3 putobject not retrieving the file data PHP

I am trying to read the data from a txt file on my amazon AWS bucket. But the body key in the response array is shown as NULL. My code -

function s3_file_get_contents($path, $private = TRUE, $bucket = '') {
  require_once(CODE_BASE_DIR . '/ds_engine/docSuggest/external/aws-sdk-3/aws-autoloader.php');
  try {
    $s3Client = new Aws\S3\S3Client(array('region' => S3_ENDPOINT_REGION, 'version' => S3_ENDPOINT_VERSION,
      'credentials' => array(
        'key'       =>  S3_SUGGESTADOC_API_KEY,
        'secret'    => S3_SUGGESTADOC_API_SECRET,
      ),
    ));

$result = $s3Client->getObject(array(
    'Bucket' => $private ? S3_BUCKET_DOCSUGGEST : S3_BUCKET_SUGGESTADOC,
    'Key' => $path,
    ));
} catch (Exception $e) {
$error = $e->getMessage();
log_message('ERROR', '['.__FUNCTION__.'] Exception: '.$error);
}
die(print_array($result['body']));
  return $error ? $error : $result['body'];
}

The file contains some text but nothing is displayed in the console. Rest assured, I have setup the connection properly and there is no issues in that. I am able to download the file but just not read from it.

P.S - The response metadata has an object URL. Using that the file can be downloaded. So I guess I am hitting the correct path but still no success.

Upvotes: 0

Views: 1016

Answers (1)

zed
zed

Reputation: 3267

The data is in $result['Body'], not in $result['body'].

Look at the documentation: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#downloading-objects

Use var_dump($result) to understand better than structure of the response.

Upvotes: 0

Related Questions