如何使用AWS PHP SDK v3.0,没有凭据文件

时间:2018-05-17 09:29:37

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

您好我正在使用 aws SDK Version 3 for php在s3上传文件 我需要摆脱凭证文件(.aws /凭证),因为它会导致我的生产服务器出现问题,

硬编码凭据方法在我的代码中不起作用。链接粘贴在下面。

https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html#hardcoded-credentials

请提供有效且有效的解决方案,了解如何使用硬编码凭据。 请注意,如果我使用凭证文件一切正常。所以问题在于凭证代码。

这是我启动s3对象时的代码

$s3Client = new S3Client([
                    'profile' => 'default',
                    'region' => 'us-west-2',
                    'version' => '2006-03-01',
                    'scheme'  => 'http',
                    'credentials'=>[
                        'key' => KEY,
                        'secret' => SECRET
                    ]
                ]);

3 个答案:

答案 0 :(得分:2)

您只需要删除'profile' => 'default',行,这会覆盖您的硬编码凭据。

今天,我一直很沮丧地处理您的相同问题,终于解决了。有关其他Amazon服务上的相同问题,请参见此处related answer

答案 1 :(得分:0)

根据AWS文档,https://docs.aws.amazon.com/aws-sdk-php/v2/guide/credentials.html

  

如果您在此时未向客户端对象提供凭据   它的实例化(例如,通过客户的工厂方法或通过   服务构建器配置),SDK将尝试查找   第一次操作时,环境中的凭据。   SDK将使用$ _SERVER超全局和/或getenv()函数   查找AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境   变量。这些凭据称为环境   凭证。

答案 2 :(得分:0)

V3 doc here https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html 在我的情况下,我在托管应用程序的计算机中使用IAM角色,从IAM仪表板管理权限更容易,您将避免使用凭据进行硬编码或配置文件。