ali1/cakephp-amazon-aws-sdk

此包已被废弃且不再维护。未建议替代包。

CakePHP 组件,用于使用 Amazon SDK for PHP

安装次数: 6,964

依赖者: 0

建议者: 0

安全: 0

星标: 8

关注者: 3

分支: 21

开放问题: 2

类型:cakephp-plugin

dev-master 2014-08-07 23:40 UTC

This package is auto-updated.

Last update: 2020-05-17 21:09:41 UTC


README

此插件是对 Amazon 的 AWS SDK for PHP(一个非常薄的)封装,用于在 CakePHP 控制器中使用。从许多其他插件中分叉而来,但已升级以支持新 SDK 2,并从插件中删除了 SDK Vendor 以实现更兼容 composer 的安装。

警告:新 SDK 与旧版本差异很大。旧代码可能不再工作。

安装

  • 添加到 composer,这将同时安装 Amazon SDK for PHP 作为依赖项

      "ali1/cakephp-amazon-aws-sdk": "dev-master"
    
  • 将组件添加到控制器中

      public $components = array('Amazonsdk.Amazon');
    

配置

您必须将配置添加到 bootstrap.php。

	Configure::write('Amazonsdk.credentials', array(
		'key' => 'YOUR KEY',
		'secret' => 'YOUR SECRET',
		'region' => 'us-east-1'
	));

别忘了用您实际的关键字替换占位符文本!

使用

在此阶段,您可以访问 AWS SDK 中所有可用的方法。以下是一个简短的列表。完整的列表可以在 (http://docs.aws.amazon.com/aws-sdk-php/latest/namespace-Aws.html) 找到。

  • Amazon CloudFront
  • Amazon CloudWatch
  • Amazon DynamoDB
  • Amazon ElastiCache
  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon Elastic MapReduce
  • Amazon Relational Database Service (Amazon RDS)
  • Amazon Simple Notification Service (Amazon SNS)
  • Amazon Simple Queue Service (Amazon SQS)
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon Simple Workflow Service
  • Amazon SimpleDB
  • Amazon Simple Email Service
  • Amazon Virtual Private Cloud (Amazon VPC)
  • Auto Scaling
  • AWS CloudFormation
  • AWS Elastic Beanstalk
  • AWS Import/Export
  • AWS Identity and Access Management
  • Elastic Load Balancing

并非每个服务的每个方法都已彻底测试。如果您遇到任何问题,请在此处或在该存储库中自由打开问题。

可以通过组件作为其成员访问每个服务的特定对象。以下是一些示例

  • $this->Amazon->Sns
  • $this->Amazon->CloudFront
  • $this->Amazon->CloudWatch
  • $this->Amazon->Ec2
  • $this->Amazon->ElasticBeanstalk
  • $this->Amazon->Sqs

示例

  • 向 SQS 队列添加作业

      $this->Amazon->Sqs->sendMessage(array(
      	'QueueUrl' => Configure::read('SQS.queueUrl'),
      	'MessageBody' => json_encode(array('jobtype'=>'SendEmails', 'data'=>array('id' => 5)))
      ));
    
  • 从模型或 shell 中

      if (!isset($this->Amazon)) {
      	App::import('Component', 'Amazonsdk.Amazon');
      	$collection = new ComponentCollection();
      	$Controller =& new Controller();
      	$this->Amazon = new AmazonComponent($collection);
      	$this->Amazon->initialize($Controller);
      }
      $this->Amazon->Sqs->sendMessage(array(
      	'QueueUrl' => Configure::read('SQS.queueUrl'),
      	'MessageBody' => json_encode(array('jobtype'=>'SendEmails', 'data'=>array('id' => 5)))
      ));
    

注释