是否可以只从 S3 获取对象自定义元数据而不必获取整个对象?我查看了 AWS SDK PHP 2 并搜索了 google 和 SO,但没有明确的答案,或者可能不是我希望的答案。
谢谢。
是否可以只从 S3 获取对象自定义元数据而不必获取整个对象?我查看了 AWS SDK PHP 2 并搜索了 google 和 SO,但没有明确的答案,或者可能不是我希望的答案。
谢谢。
也许这对 PHP 2 有帮助?它使用我不熟悉的 Guzzle 框架。
执行 HeadObject 命令:HEAD 操作从对象检索元数据而不返回对象本身。如果您只对对象的元数据感兴趣,此操作很有用。要使用 HEAD,您必须对对象具有 READ 访问权限。
使用 Guzzle 框架的最终尝试(未经测试的代码):
use Guzzle\Service\Resource\Model
use Aws\Common\Enum\Region;
use Aws\S3\S3Client;
$client = S3Client::factory(array(
"key" => "YOUR ACCESS KEY ID",
"secret" => "YOUR SECRET ACCESS KEY",
"region" => Region::US_EAST_1,
"scheme" => "http",
));
// HEAD object
$headers = $client->headObject(array(
"Bucket" => "your-bucket",
"Key" => "your-key"
));
print_r($headers->toArray());
PHP 1.6.2 解决方案
// Instantiate the class
$s3 = new AmazonS3();
$bucket = 'my-bucket' . strtolower($s3->key);
$response = $s3->get_object_metadata($bucket, 'üpløåd/î\'vé nøw béén üpløådéd.txt');
// Success?
var_dump($response['ContentType']);
var_dump($response['Headers']['content-language']);
var_dump($response['Headers']['x-amz-meta-ice-ice-baby']);
归功于:http ://docs.aws.amazon.com/AWSSDKforPHP/latest/#m=AmazonS3/get_object_metadata
希望有帮助!
AWS HEAD 对象http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html
use Aws\S3\S3Client;
use Guzzle\Common\Collection;
$client = S3Client::factory(array(
'key' => 'YOUR-AWS-KEY',
'secret' => 'YOUR-SECRET-KEY'
));
// Use Guzzle's toArray() method.
$result = $client->headObject(['Bucket' => 'YOUR-BUCKET-NAME', 'Key' => 'YOUR-FILE-NAME'])->toArray();
print_r($result['Metadata']);