我正在尝试从我的amazon AWS桶上的txt文件中读取数据。但响应数组中的正文键显示为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。使用该文件可以下载。所以我想我正在走正确的道路,但仍然没有成功。
答案 0 :(得分:0)
数据位于$result['Body']
,而不是$result['body']
。
查看文档: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#downloading-objects
使用var_dump($result)
更好地理解响应的结构。