1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- namespace crmeb\services\upload\extend\cos;
- class Scope
- {
- protected $action;
- protected $bucket;
- protected $region;
- protected $resourcePrefix;
- protected $effect = 'allow';
- public function __construct($action, $bucket, $region, $resourcePrefix)
- {
- $this->action = $action;
- $this->bucket = $bucket;
- $this->region = $region;
- $this->resourcePrefix = $resourcePrefix;
- }
- public function set_effect($isAllow)
- {
- if ($isAllow) {
- $this->effect = 'allow';
- } else {
- $this->effect = 'deny';
- }
- }
- public function get_action()
- {
- if ($this->action == null) {
- throw new \Exception("action == null");
- }
- return $this->action;
- }
- public function get_resource()
- {
- if ($this->bucket == null) {
- throw new \Exception("bucket == null");
- }
- if ($this->region == null) {
- throw new \Exception("region == null");
- }
- if ($this->resourcePrefix == null) {
- throw new \Exception("resourcePrefix == null");
- }
- $index = strripos($this->bucket, '-');
- if ($index < 0) {
- throw new Exception("bucket is invalid: " . $this->bucket);
- }
- $appid = substr($this->bucket, $index + 1);
- if (!(strpos($this->resourcePrefix, '/') === 0)) {
- $this->resourcePrefix = '/' . $this->resourcePrefix;
- }
- return 'qcs::cos:' . $this->region . ':uid/' . $appid . ':' . $this->bucket . $this->resourcePrefix;
- }
- public function get_effect()
- {
- return $this->effect;
- }
- }
|