Я пытаюсь прочитать данные из текстового файла на моем Amazon AWS ведро. Но ключ тела в массиве ответов отображается как NULL. Мой код —
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'];
}
Файл содержит текст, но в консоли ничего не отображается. Будьте уверены, я правильно настроил соединение и в этом нет проблем. Я могу загрузить файл, но не могу прочитать его.
P.S — у метаданных ответа есть URL объекта. Используя это, файл может быть загружен. Так что я думаю, что я иду по правильному пути, но все равно безуспешно.
Данные в $result['Body']
, не в $result['body']
,
Посмотрите на документацию:
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#downloading-objects
использование var_dump($result)
понять лучше, чем структура ответа.
Других решений пока нет …