コード例 #1
0
 public function sign(HttpRequest $request, array $credentials)
 {
     AssertUtils::assertSet(array(OSSOptions::ACCESS_KEY_ID, OSSOptions::ACCESS_KEY_SECRET), $credentials);
     AssertUtils::assertString($credentials[OSSOptions::ACCESS_KEY_ID], OSSOptions::ACCESS_KEY_ID);
     AssertUtils::assertString($credentials[OSSOptions::ACCESS_KEY_SECRET], OSSOptions::ACCESS_KEY_SECRET);
     $key = $credentials[OSSOptions::ACCESS_KEY_ID];
     $secret = $credentials[OSSOptions::ACCESS_KEY_SECRET];
     if (strlen($key) > 0 && strlen($secret) > 0) {
         $canonicalString = SignUtils::buildCanonicalString($request, $this->bucket, $this->key);
         $signature = ServiceSignature::factory()->computeSignature($secret, $canonicalString);
         $request->addHeader(OSSHeaders::AUTHORIZATION, 'OSS ' . $key . ':' . $signature);
     } else {
         if (strlen($key) > 0) {
             $request->addHeader(OSSHeaders::AUTHORIZATION, $key);
         }
     }
 }
コード例 #2
0
ファイル: HttpMessage.php プロジェクト: diandianxiyu/Yii2Api
 public function addHeader($header, $value)
 {
     AssertUtils::assertString($header, 'HttpHeaderName');
     AssertUtils::assertString($value, 'HttpHeaderValue');
     $this->headers[$header] = $value;
 }
コード例 #3
0
ファイル: Bucket.php プロジェクト: diandianxiyu/Yii2Api
 /**
  * 设置Bucket的名字
  *
  * @internal
  *
  * @param string $name Bucket的名字
  */
 public function setName($name)
 {
     AssertUtils::assertString($name, 'name');
     $this->name = $name;
 }
コード例 #4
0
ファイル: HttpRequest.php プロジェクト: diandianxiyu/Yii2Api
 public function addParameter($key, $value)
 {
     AssertUtils::assertString($key, 'HttpParameterName');
     if ($value !== null) {
         AssertUtils::assertString($value, 'HttpParameterValue');
     }
     $this->parameters[$key] = $value;
 }
コード例 #5
0
 public function build()
 {
     AssertUtils::assertString($this->endpoint, 'endpoint');
     // sent request
     $request = new HttpRequest();
     $request->setEndpoint(OSSUtils::buildEndpoint($this->endpoint, $this->bucket));
     if (isset($this->method)) {
         $request->setMethod($this->method);
     }
     $headers = $this->headers;
     // Date
     if (!isset($headers[OSSHeaders::DATE])) {
         $headers[OSSHeaders::DATE] = DateUtils::formatDate(new \DateTime());
     }
     // Content-Type
     if (!isset($headers[OSSHeaders::CONTENT_TYPE])) {
         $headers[OSSHeaders::CONTENT_TYPE] = '';
     }
     if (!isset($headers[OSSHeaders::CONTENT_LENGTH]) && is_string($this->content)) {
         $headers[OSSHeaders::CONTENT_LENGTH] = (string) strlen($this->content);
     }
     foreach ($headers as $key => $value) {
         $request->addHeader($key, $value);
     }
     $parameters = $this->parameters;
     foreach ($parameters as $key => $value) {
         $request->addParameter($key, $value);
     }
     $request->setResourcePath(OSSUtils::buildResourcePath($this->key));
     $request->setContent($this->content);
     $request->setResponseBody($this->responseBody);
     return $request;
 }