gpt4 book ai didi

amazon-web-services - AWS S3 getObject 无法通过 PHP SDK 读取对象内容

转载 作者:行者123 更新时间:2023-12-04 16:44:13 25 4
gpt4 key购买 nike

我尝试通过以下代码从 s3 对象中读取内容。

$content = $s3Client->getObject(
array(
'Bucket'=> $bucketName,
'Key' => $pathToObject,
'ResponseContentType' => 'text/plain',
)
);

我得到以下回应

GuzzleHttp\Psr7\Stream Object ( [stream:GuzzleHttp\Psr7\Stream:private] => Resource id #87 [size:GuzzleHttp\Psr7\Stream:private] => [seekable:GuzzleHttp\Psr7\Stream:private] => 1 [readable:GuzzleHttp\Psr7\Stream:private] => 1 [writable:GuzzleHttp\Psr7\Stream:private] => 1 [uri:GuzzleHttp\Psr7\Stream:private] => php://temp [customMetadata:GuzzleHttp\Psr7\Stream:private] => Array ( )

)

任何帮助将不胜感激阅读 S3 中的对象内容。

最佳答案

其实它的返回 Psr7\Stream 对象。

所以如果我们需要从 PSR Stream 中获取内容,我们必须从对象中调用 getContents() 方法。

<?php

$s3Client = new Aws\S3\S3Client(array(
'stats' => TRUE,
'http' => array(
'verify' => FALSE,
'connect_timeout' => 30
),
'version' => 'latest'
));

$result = $s3Client->getObject(array(
'Key' => $filename,
'Bucket' => $bucketName
));

echo $result['Body']->getContents();
//Also you can get metadata like this print_r($result['Body']->getMetadata());

希望这会对实际使用 SDK 版本 3 的人有所帮助。

这里的规范https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-GuzzleHttp.Psr7.Stream.html

关于amazon-web-services - AWS S3 getObject 无法通过 PHP SDK 读取对象内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52053934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com