Amazon Simple Storage Service
开发人员指南 (API 版本 2006-03-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 AWS 账户或 IAM 用户临时凭证进行请求 - 适用于 PHP 的 AWS 开发工具包

本主题介绍如何使用版本 3 的适用于 PHP 的 AWS 开发工具包中的类请求临时安全凭证并使用这些凭证访问 Amazon S3。本主题假定已按照使用适用于 PHP 的 AWS 开发工具包和运行 PHP 示例的说明执行操作并正确安装了适用于 PHP 的 AWS 开发工具包。

IAM 用户或 AWS 账户可使用版本 3 的适用于 PHP 的 AWS 开发工具包请求临时安全凭证。之后,它可使用临时凭证访问 Amazon S3。这些凭证将在会话持续时间结束时到期。默认情况下,会话的持续时间为一个小时。如果使用了 IAM 用户凭证,则可在请求临时安全凭证时指定持续时间 (1 到 36 小时)。有关临时安全凭证的更多信息,请参阅 IAM 用户指南 中的临时安全凭证。有关发出请求的更多信息,请参阅创建请求

注意

如果您使用 AWS 账户安全凭证获取临时安全凭证,则临时安全凭证的有效期仅为一个小时。只有当您使用 IAM 用户凭证请求会话时,您才可以指定会话持续时间。

以下 PHP 示例使用临时安全凭证列出指定存储桶中的对象键。该示例将为默认一小时的会话获取临时安全凭证,然后使用这些凭证向 Amazon S3 发送经身份验证的请求。有关运行本指南中的 PHP 示例的信息,请参阅运行 PHP 示例

如果要使用 IAM 用户凭证测试示例,则需要在 AWS 账户下创建一个 IAM 用户。有关如何创建 IAM 用户的信息,请参阅 IAM 用户指南 中的创建您的第一个 IAM 用户和管理员组。有关在使用 IAM 用户凭证请求会话时设置会话持续时间的示例,请参阅使用联合身份用户临时凭证创建请求 - 适用于 PHP 的 AWS 开发工具包

<?php require 'vendor/autoload.php'; use Aws\Sts\StsClient; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; $sts = new StsClient([ 'version' => 'latest', 'region' => 'us-east-1' ]); $sessionToken = $sts->getSessionToken(); $s3 = new S3Client([ 'region' => 'us-east-1', 'version' => 'latest', 'credentials' => [ 'key' => $sessionToken['Credentials']['AccessKeyId'], 'secret' => $sessionToken['Credentials']['SecretAccessKey'], 'token' => $sessionToken['Credentials']['SessionToken'] ] ]); $result = $s3->listBuckets(); try { // Retrieve a paginator for listing objects. $objects = $s3->getPaginator('ListObjects', [ 'Bucket' => $bucket ]); echo "Keys retrieved!" . PHP_EOL; // List objects foreach ($objects as $object) { echo $object['Key'] . PHP_EOL; } } catch (S3Exception $e) { echo $e->getMessage() . PHP_EOL; }

相关资源

本页内容: