Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用 适用于 PHP 的 AWS 开发工具包 获取对象

此主题指导您使用来自 适用于 PHP 的 AWS 开发工具包 的类检索对象。您可以检索整个对象,也可以指定要从对象检索的字节范围。

注意

本主题假定您已按照 使用适用于 PHP 的 AWS 开发工具包和运行 PHP 示例 的说明执行操作,并正确安装了 适用于 PHP 的 AWS 开发工具包。

下载对象

1

使用 Aws\S3\S3Clientfactory() 方法创建 Amazon S3 客户端的实例。

2

执行 Aws\S3\S3Client::getObject() 方法。必须在 array 参数的必需键 (BucketKey) 中提供存储桶名称和键名称。

您可以检索对象数据的特定字节范围,而不是检索整个对象。除了必需的键外,还需通过指定 Range 键的数组参数来提供范围值。

除了必需的键、SaveAsBucket 外,通过指定文件路径用于保存数组参数的 Key 键中的文件,您还可以将从 Amazon S3 检索的对象保存到本地文件系统中的文件。

以下 PHP 代码示例演示下载对象的上述任务。

Copy
use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; $filepath = '*** Your File Path ***'; // Instantiate the client. $s3 = S3Client::factory(); // Get an object. $result = $s3->getObject(array( 'Bucket' => $bucket, 'Key' => $keyname )); // Get a range of bytes from an object. $result = $s3->getObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'Range' => 'bytes=0-99' )); // Save object to a file. $result = $s3->getObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'SaveAs' => $filepath ));

检索对象时,您可以选择覆盖响应标头值 (参阅 获取对象),方法是将数组参数的响应键、ResponseContentTypeResponseContentLanguageResponseContentDispositionResponseCacheControlResponseExpires 添加到 getObject() 方法中,如以下 PHP 代码示例所示。

Copy
$result = $s3->getObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'ResponseContentType' => 'text/plain', 'ResponseContentLanguage' => 'en-US', 'ResponseContentDisposition' => 'attachment; filename=testing.txt', 'ResponseCacheControl' => 'No-cache', 'ResponseExpires' => gmdate(DATE_RFC2822, time() + 3600), ));

例 使用 PHP 下载对象

以下 PHP 代码示例检索对象,并在浏览器中显示对象内容。该实例将演示 getObject() 方法的使用情况。有关运行本指南中的 PHP 示例的信息,请参阅运行 PHP 示例

Copy
<?php // Include the AWS SDK using the Composer autoloader. require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; // Instantiate the client. $s3 = S3Client::factory(); try { // Get the object $result = $s3->getObject(array( 'Bucket' => $bucket, 'Key' => $keyname )); // Display the object in the browser header("Content-Type: {$result['ContentType']}"); echo $result['Body']; } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }

相关资源

本页内容: