Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过api S3 bucket private访问_Php_Laravel 5_Amazon S3 - Fatal编程技术网

Php 通过api S3 bucket private访问

Php 通过api S3 bucket private访问,php,laravel-5,amazon-s3,Php,Laravel 5,Amazon S3,我试图在我开发的API上找到最好的解决方案,基本上在我的API中,我将图像存储在s3私有存储桶上,在私有存储桶中,我需要在移动应用程序上显示 我有两种解决方案,但在我看来不是最好的: 1) 在base64中发送图像。 问题:需要更改应用程序以读取base64图像,因为以前是通过访问url来读取的 2) 使用s3凭据访问在应用程序中进行身份验证的专用存储桶 问题:不完全安全,暴露应用程序中保存的凭据 有人遇到同样的情况吗?任何想法。如果您的用户未登录,并且您希望向应用程序的所有用户共享相同的内容,

我试图在我开发的API上找到最好的解决方案,基本上在我的API中,我将图像存储在s3私有存储桶上,在私有存储桶中,我需要在移动应用程序上显示

我有两种解决方案,但在我看来不是最好的:

1) 在base64中发送图像。 问题:需要更改应用程序以读取base64图像,因为以前是通过访问url来读取的

2) 使用s3凭据访问在应用程序中进行身份验证的专用存储桶 问题:不完全安全,暴露应用程序中保存的凭据


有人遇到同样的情况吗?任何想法。

如果您的用户未登录,并且您希望向应用程序的所有用户共享相同的内容,则您的移动应用程序应:

  • 使用AWS安全令牌服务(STS)生成一组临时凭据,使用
  • 该角色应预先配置为具有访问S3 bucket的权限
  • 将临时凭据发送到移动应用程序
  • 然后,移动应用程序可以使用这些凭据访问AmazonS3中的私有内容
相反,如果您的用户对您的应用程序进行身份验证,那么您可能希望控制他们可以在S3中访问哪些对象。为此,流程为:

  • 用户对应用程序进行身份验证
  • 当他们希望访问对象时,后端应用程序将验证他们是否有权访问对象
  • 如果允许,则应用程序应生成一个有时间限制的URL,该URL授予对私有对象的访问权限

用户是否会在应用程序中进行身份验证(因此您只能向某些用户提供某些图像),或者任何应用程序用户是否有权访问S3中的文件(只要请求来自您的移动应用程序)?