我经常使用AWS服务,并且当我连接到Amazon时,我的PHP SDK会自动从我的ec2实例中检索凭据。
现在我有一个想要使用的库,它需要我在实例化类时包含我的AWS秘密键和访问键。
如何通过AWS PHP SDK检索当前访问令牌和秘钥,以便不将密钥硬编码到我的应用程序中?
现在我有一个想要使用的库,它需要我在实例化类时包含我的AWS秘密键和访问键。
如何通过AWS PHP SDK检索当前访问令牌和秘钥,以便不将密钥硬编码到我的应用程序中?
// Require Composer's autoloader
require_once __DIR__ . "/vendor/autoload.php";
use Aws\Credentials\Credentials
use Aws\Credentials\CredentialProvider;
use Aws\Exception\CredentialsException;
use EddTurtle\DirectUpload\Signature;
// Use the default credential provider
$provider = CredentialProvider::defaultProvider();
$credentials = $provider()->wait();
$upload = new Signature(
$credentials->getAccessKeyId(),
$credentials->getSecretKey(),
"YOUR_S3_BUCKET",
"eu-west-1"
);
$client = new DynamoDbClient([
'profile' => 'project1',
'region' => 'us-west-2',
'version' => 'latest'
]);
然而,通常情况下,您希望SDK自动定位您的凭据。AWS SDK将按照以下顺序搜索您的凭据(不包括所有情况):
通常只需使用此示例并让SDK为您找到凭据即可:
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;
// Use the default credential provider
$provider = CredentialProvider::defaultProvider();
// Pass the provider to the client
$client = new S3Client([
'region' => 'us-west-2',
'version' => '2006-03-01',
'credentials' => $provider
]);