dongzhi4498 2019-05-06 23:02
浏览 60
已采纳

Aws Php SDk - 使用硬编码凭证创建Cloudfront分发

I'm trying to create a cloudfront distribution while doing the authentication via hardcoded credentials.

However i receive this error when i run my code Fatal error: Uncaught Aws\Exception\CredentialsException: Cannot read credentials from /.aws/credentials

It seems that the aws sdk is trying to authentificate using the second method listed here ( https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html ) - the one when you put the credentials in ./aws folder

Here is my code (taken from aws documentation ) - Any idea why this is not working ?

public function create_cloudfront_client(){

    $region='us-east-1';   
    $client = new Aws\CloudFront\CloudFrontClient([
        'profile' => 'default',
        'version'       =>  'latest',
        'region'  => 'us-east-1', 
         'debug' => true,
        'credentials' =>[
                    'key'    => $this->aws_key,
                    'secret' => $this->aws_secret,
                    ],
              ]);

    $originName = 'cloudfrontme';
    $s3BucketURL = 'https://s3.amazonaws.com/cloudfrontme';
    $callerReference = 'uniquestring99';
    $comment = 'Created by AWS SDK for PHP';
    $cacheBehavior = [

        'AllowedMethods' => [
            'CachedMethods' => [
                'Items' => ['HEAD', 'GET'],
                'Quantity' => 2,
            ],
            'Items' => ['HEAD', 'GET'],
            'Quantity' => 2,
        ],
        'Compress' => false,
        'DefaultTTL' => 0,
        'FieldLevelEncryptionId' => '',
        'ForwardedValues' => [
            'Cookies' => [
                'Forward' => 'none',
            ],
            'Headers' => [
                'Quantity' => 0,
            ],
            'QueryString' => false,
            'QueryStringCacheKeys' => [
                'Quantity' => 0,
            ],
        ],
        'LambdaFunctionAssociations' => ['Quantity' => 0],
        'MaxTTL' => 0,
        'MinTTL' => 0,
        'SmoothStreaming' => false,
        'TargetOriginId' => $originName,
        'TrustedSigners' => [
            'Enabled' => false,
            'Quantity' => 0,
        ],
        'ViewerProtocolPolicy' => 'allow-all',
    ];

    $enabled = false;
    $origin = [
        'Items' => [
            [
                'DomainName' => $s3BucketURL,
                'Id' => $originName,
                'OriginPath' => '',
                'CustomHeaders' => ['Quantity' => 0],
                'S3OriginConfig' => ['OriginAccessIdentity' => ''],

            ],
        ],
        'Quantity' => 1,
    ];



    $distribution = [
        'CallerReference' => $callerReference,
        'Comment' => $comment,
        'DefaultCacheBehavior' => $cacheBehavior,
        'Enabled' => $enabled,
        'Origins' => $origin,

    ];

    try {
        $result = $client->createDistribution([
            'DistributionConfig' => $distribution, //REQUIRED
        ]);
        var_dump($result);
    } catch (AwsException $e) {
        // output error message if fails
        echo $e->getMessage();
        echo "
";
    }
}

展开全部

  • 写回答

1条回答 默认 最新

  • douang4294 2019-05-09 01:37
    关注

    The solution was to create the cloudfront client like this

     $client =  Aws\CloudFront\CloudFrontClient::factory(array(
            'region' => $bucket_region,
            'version' => 'latest',
    
            'credentials' => [
                'key'    => $this->aws_key,
                'secret' => $this->aws_secret,
                ]
    
        ));
    

    However i don't understand why this version works while the one below (from aws docs ) does not. Can anyone explain this ? Thanks

    $client = new Aws\CloudFront\CloudFrontClient([
        'version'       =>  'latest',
        'region' => $bucket_region,
         'debug' => true,
        'credentials' =>[
                    'key'    => $this->aws_key,
                    'secret' => $this->aws_secret,
                    ],
              ]);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 vscode请求各位指导
  • ¥50 有偿求qftp工具。能连接,下载文件,发送代码,windows环境,最好qt6 要qt creator写的
  • ¥70 刚刚看到一个人的网站居然是通过cname访问的
  • ¥15 Attributeerror:super object has no attribute '__sklearn_tags__'_'
  • ¥15 逆置单链表输出不完整
  • ¥15 宇视vms-B200-A16@R启动不了,如下图所示,在软件工具搜不到,如何解决?(操作系统-linux)
  • ¥500 寻找一名电子工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部