访问存储在AWS S3公共存储桶中的数据

时间:2017-09-25 14:58:48

标签: php symfony amazon-web-services amazon-s3

这是我的第一次AWS工作,所以下面的问题对很多人来说可能很容易,但我需要一些帮助。

当我转到https://hello-world.s3-ca-central-1.amazonaws.com/时,我会在浏览器中收到以下回复。

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2007-01-01/">
    <Name>hello-world</Name>
    <Prefix></Prefix>
    <Marker></Marker>
    <MaxKeys>1000</MaxKeys>
    <IsTruncated>false</IsTruncated>
    <Contents>
        <Key>data-1.json</Key>
        <LastModified>2017-01-01T10:00:00.000Z</LastModified>
        <ETag>"1234567890qwertyui"</ETag>
        <Size>12345</Size>
        <StorageClass>STANDARD</StorageClass>
    </Contents>
</ListBucketResult>

假设这是一个公共S3存储桶。如果我没有凭据,我怎样才能将数据存储在data-1.json中(据我所知,我不需要公共存储桶的凭据)?我浏览了文档和博客文章,但找不到任何不使用凭据的示例。

我在检查https://github.com/awslabs/aws-php-sample之后提出了以下代码,但它也提到我需要凭证https://github.com/awslabs/aws-php-sample#basic-configuration

$s3 = new Aws\S3\S3Client([
    'version' => '2007-01-01',
    'region'  => 'ca-central-1'
]);

$result = $s3->getObject([
    'Bucket' => 'hello-world',
    'Key'    => 'data-1.json'
]);

echo $result['Body'];

注意:我将使用Symfony框架。

0 个答案:

没有答案