我正在尝试从我的S3存储桶下载内容的功能。我遇到的主要问题是,$s3->getObject
返回带有私有属性的类。
我正在通过作曲家使用"aws/aws-sdk-php": "^3.54"
这是我的方法。
我的主控制器
public function download($idDocument = null) {
$document = $this->Documents->get(['where' => ['id_document' => $idDocument]]);
$document = $document[0];
// Download file from S3
$this->load->library('s3');
$response = $this->s3->downloadFromS3($document->path);
var_dump($response);
die();
}
这是我的S3库,我在上层控制器中调用
public function authorize() {
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'eu-central-1',
'credentials' => [
'key' => $this->config->config['s3_access_key'],
'secret' => $this->config->config['s3_secret_key']
]
]);
return $s3;
}
public function downloadFromS3($uniqueIdTypeAndName) {
$s3 = $this->authorize();
$object = $s3->getObject([
'Bucket' => $this->config->config['s3_bucket_name'],
'Key' => $uniqueIdTypeAndName
]);
return $object;
}
这是我的库函数<{1}}的响应
因此,当我尝试拨打$ response-&gt; ContentType时,我得到var_dump($response);
我能做什么才能使我的课程公开,并且可以访问这些属性?如果您需要任何其他信息,请告诉我,我会提供。谢谢
答案 0 :(得分:0)
我明白了。您必须像访问数组一样访问此对象属性。
在我的情况下,如果我尝试访问$ response的内容类型,我需要调用
$response['ContentType']