s3预先分配的网址在我的网络外无效

问题描述 投票:0回答:1

我用sdk v.3来存储和检索s3中的文件。我已经生成了预先签名的网址,它可以在我的网络中正常运行。但我无法从其他网络访问该网址。这是我的代码

    $sharedConfig = [
    'version'     => 'latest',
        'region'      => 'eu-west-1',
        'credentials' => [
            'key'    => '...',
            'secret' => '...'
        ]
];

$sdk = new Aws\Sdk($sharedConfig);

$s3Client = $sdk->createS3();

$object = [
    'Bucket'    => 'test.bucket',
    'Key'       => 'icon.png'
];

$cmd = $s3Client->getCommand('GetObject',$object);
$request = $s3Client->createPresignedRequest($cmd, '+5 minutes');

有没有办法让网址完全公开5分钟而不更改存储区ACL?顺便说一下,我在尝试从其他网络访问预先签名的URL时遇到以下错误。

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>A793BD3D8DF125E5</RequestId>
<HostId>
1nV37sDXfKGEkHuiDGY9I8TNZllIL8jDQabC4vlpuAtSDllOay3qGglf9Y/EW6wFILnfAszG/YM=
</HostId>
</Error>
amazon-s3
1个回答
0
投票

已生成Presigned Url以供公共访问。但我的存储桶只允许从特定的IP访问。这就是为什么我无法从任何其他网络访问网址。

我通过在我的服务器上进行另一个下载服务(列出白名单)并将文件下载到请求者来实现我的目的。

© www.soinside.com 2019 - 2024. All rights reserved.