• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

s3预先登记的网址无法在我的网络外工作

amazon-s3 来源:Shuhail Alam 4次浏览

我用户sdk v.3存储&从s3中检索文件。我已经生成了预定网址&,它可以在我的网络中正常工作。但我无法访问其他网络的网址。 这里是我的代码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> 


===========解决方案如下:

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

我通过在我的服务器上创建另一个下载服务(这是白名单)并将该文件下载到请求者来完成我的任务。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)