您好我正在使用 aws SDK Version 3 for php在s3上传文件 我需要摆脱凭证文件(.aws /凭证),因为它会导致我的生产服务器出现问题,
硬编码凭据方法在我的代码中不起作用。链接粘贴在下面。
请提供有效且有效的解决方案,了解如何使用硬编码凭据。 请注意,如果我使用凭证文件一切正常。所以问题在于凭证代码。
这是我启动s3对象时的代码
$s3Client = new S3Client([
'profile' => 'default',
'region' => 'us-west-2',
'version' => '2006-03-01',
'scheme' => 'http',
'credentials'=>[
'key' => KEY,
'secret' => SECRET
]
]);
答案 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仪表板管理权限更容易,您将避免使用凭据进行硬编码或配置文件。