【问题标题】:How to get a file from the Amazon S3? permission如何从 Amazon S3 获取文件?允许
【发布时间】:2016-02-15 20:28:58
【问题描述】:

我正在尝试将文件上传到 Amazon S3,然后下载。文件已加载,但我无法获得它。好像是权限问题。

我的存储桶权限:

Grantee: mgalex (List, Update/Delete, View Permissions, Edit Permissions)
Grantee: Any Authentificated AWS User (List, Update/Delete, View Permissions)

文件是用权限创建的:

Grantee: mgalex (Open/Download, View Permissions, Edit Permissions)

通过“任何经过身份验证的 AWS 用户”权限上传的文件。我了解正确的权限必须只是“mgalex”。但是如果没有被授权者“任何经过身份验证的 AWS 用户”,我就会遇到错误 (AccessDenied)。 告诉我,如何设置正确的权限?

我使用 Laravel

【问题讨论】:

    标签: laravel amazon-s3


    【解决方案1】:

    权限看起来不错。你需要授权。尝试这样的事情。您需要在 database.php 上定义您的 s3 凭据

    $disk = Storage::disk('s3');
    
    $client = $disk->getDriver()->getAdapter()->getClient();
    
    $command = $client->getCommand('GetObject', [
                        'Bucket' => 'path/to/your/bucket',
                        'Key' => 'filename.jpg'
                    ]);
    
        $request = $client->createPresignedRequest($command, '+5 minutes'); // the url is valid for 5 mins
    
    echo (string) $request->getUri();
    

    【讨论】:

    • 此链接响应:“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法”。我在 filesystem.php 中的设置是正确的。有什么问题?
    猜你喜欢
    • 1970-01-01
    • 2018-10-13
    • 2011-12-17
    • 2016-01-25
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多