AWS S3 - Unable to save file using getObject() with PHP

amazon-web-services, php

Solution

You can try

use Guzzle\Http\EntityBody;

$s3Client->getObject(array(
  'Bucket' => $s3Bucket,
  'Key'    => $s3Path,
  'command.response_body' => EntityBody::factory(fopen($saveFile, 'w+'))
));

Also

$result = $s3Client->getObject(array(
    'Bucket' => $s3Bucket,
    'Key'    => $s3Path
));

file_put_contents ($saveFile, (string) $result['Body']);

Problem

I'm relatively new to using AWS and am stuck on what I believe should be a basic task. I'm using the PHP SDK version 2 to retrieve files from one of my buckets to a temp directory on my server. According to the documentation I can use getObject to do this. Using the following code snippets I am able to retrieve the file but am having trouble saving the actual contents to the temp directory. #1 ``` $result = $s3->getObject(array( "Bucket" => $s3Bucket, "Key" => $s3Path, "ResponseContentType" => "image/jpeg", "SaveAs" => EntityBody::factory(fopen($saveFile, "wb")) )); ``` #2 ``` $result = $s3->getObject(array( "Bucket" => $s3Bucket, "Key" => $s3Path, "ResponseContentType" => "image/jpeg", "SaveAs" => fopen($saveFile, "wb") )); ``` Both of these request are successful in the sense that they return the object but I am still getting a tmp file of 0 bytes. Any insight into this is greatly appriciated. Thanks!

Original source