Example #1
0
 protected function getRequest($options)
 {
     $builder = OSSRequestBuilder::factory();
     if (isset($options[OSSOptions::MODIFIED_SINCE_CONSTRAINT])) {
         $builder->addHeader(OSSHeaders::COPY_OBJECT_SOURCE_IF_MODIFIED_SINCE, DateUtils::formatDate($options[OSSOptions::MODIFIED_SINCE_CONSTRAINT]));
     }
     if (isset($options[OSSOptions::UNMODIFIED_SINCE_CONSTRAINT])) {
         $builder->addHeader(OSSHeaders::COPY_OBJECT_SOURCE_IF_UNMODIFIED_SINCE, DateUtils::formatDate($options[OSSOptions::UNMODIFIED_SINCE_CONSTRAINT]));
     }
     if (isset($options[OSSOptions::MATCHING_ETAG_CONSTRAINTS])) {
         $constraints = $options[OSSOptions::MATCHING_ETAG_CONSTRAINTS];
         $builder->addHeader(OSSHeaders::COPY_OBJECT_SOURCE_IF_MATCH, join(', ', $constraints));
     }
     if (isset($options[OSSOptions::NO_MATCHING_ETAG_CONSTRAINTS])) {
         $constraints = $options[OSSOptions::NO_MATCHING_ETAG_CONSTRAINTS];
         $builder->addHeader(OSSHeaders::COPY_OBJECT_SOURCE_IF_NONE_MATCH, join(', ', $constraints));
     }
     $builder->addHeader(OSSHeaders::COPY_OBJECT_SOURCE, "/" . $options[OSSOptions::SOURCE_BUCKET] . "/" . $options[OSSOptions::SOURCE_KEY]);
     if (OSSUtils::containsMetaOptions($options)) {
         $builder->addObjectMetadataHeaders($options);
         $builder->addHeader(OSSHeaders::COPY_OBJECT_METADATA_DIRECTIVE, 'REPLACE');
     } else {
         $builder->addHeader(OSSHeaders::COPY_OBJECT_METADATA_DIRECTIVE, 'COPY');
     }
     return $builder->setEndpoint($options[OSSOptions::ENDPOINT])->setBucket($options[OSSOptions::DEST_BUCKET])->setKey($options[OSSOptions::DEST_KEY])->setMethod(HttpMethods::PUT)->build();
 }
Example #2
0
 public static function populateObjectMetadata(&$headers, $options)
 {
     if (isset($options[OSSOptions::CONTENT_DISPOSITION])) {
         $headers[OSSHeaders::CONTENT_DISPOSITION] = $options[OSSOptions::CONTENT_DISPOSITION];
     }
     if (isset($options[OSSOptions::CACHE_CONTROL])) {
         $headers[OSSHeaders::CACHE_CONTROL] = $options[OSSOptions::CACHE_CONTROL];
     }
     if (isset($options[OSSOptions::CONTENT_ENCODING])) {
         $headers[OSSHeaders::CONTENT_ENCODING] = $options[OSSOptions::CONTENT_ENCODING];
     }
     if (isset($options[OSSOptions::CONTENT_TYPE])) {
         $headers[OSSHeaders::CONTENT_TYPE] = $options[OSSOptions::CONTENT_TYPE];
     }
     if (isset($options[OSSOptions::EXPIRES])) {
         $headers[OSSHeaders::EXPIRES] = DateUtils::formatDate($options[OSSOptions::EXPIRES]);
     }
     if (isset($options[OSSOptions::USER_METADATA])) {
         foreach ($options[OSSOptions::USER_METADATA] as $key => $value) {
             $headers[OSSHeaders::OSS_USER_META_PREFIX . strtolower($key)] = $value;
         }
     }
 }
Example #3
0
 protected function getRequest($options)
 {
     if ($options[OSSOptions::META_ONLY] === true) {
         unset($options[OSSOptions::RANGE]);
         unset($options[OSSOptions::SAVE_AS]);
         unset($options[OSSOptions::RESPONSE_CONTENT_LANGUAGE]);
         unset($options[OSSOptions::RESPONSE_CONTENT_DISPOSITION]);
         unset($options[OSSOptions::RESPONSE_CACHE_CONTROL]);
         unset($options[OSSOptions::RESPONSE_CONTENT_TYPE]);
         unset($options[OSSOptions::RESPONSE_CONTENT_ENDCODING]);
         unset($options[OSSOptions::RESPONSE_EXPIRES]);
     }
     $builder = OSSRequestBuilder::factory();
     if (isset($options[OSSOptions::RANGE])) {
         $range = $options[OSSOptions::RANGE];
         $rangeValue = 'bytes=';
         if ($range[0] == -1) {
             $rangeValue .= '-' . $range[1];
         } else {
             if ($range[1] == -1) {
                 $rangeValue .= $range[0] . '-';
             } else {
                 $rangeValue .= $range[0] . '-' . $range[1];
             }
         }
         $builder->addHeader(OSSHeaders::RANGE, $rangeValue);
     }
     if (isset($options[OSSOptions::MODIFIED_SINCE_CONSTRAINT])) {
         $builder->addHeader(OSSHeaders::GET_OBJECT_IF_MODIFIED_SINCE, DateUtils::formatDate($options[OSSOptions::MODIFIED_SINCE_CONSTRAINT]));
     }
     if (isset($options[OSSOptions::UNMODIFIED_SINCE_CONSTRAINT])) {
         $builder->addHeader(OSSHeaders::GET_OBJECT_IF_UNMODIFIED_SINCE, DateUtils::formatDate($options[OSSOptions::UNMODIFIED_SINCE_CONSTRAINT]));
     }
     if (isset($options[OSSOptions::MATCHING_ETAG_CONSTRAINTS])) {
         $constraints = $options[OSSOptions::MATCHING_ETAG_CONSTRAINTS];
         $builder->addHeader(OSSHeaders::GET_OBJECT_IF_MATCH, join(', ', $constraints));
     }
     if (isset($options[OSSOptions::NO_MATCHING_ETAG_CONSTRAINTS])) {
         $constraints = $options[OSSOptions::NO_MATCHING_ETAG_CONSTRAINTS];
         $builder->addHeader(OSSHeaders::GET_OBJECT_IF_NONE_MATCH, join(', ', $constraints));
     }
     if (isset($options[OSSOptions::SAVE_AS])) {
         $builder->setResponseBody($options[OSSOptions::SAVE_AS]);
     }
     return $builder->setEndpoint($options[OSSOptions::ENDPOINT])->setBucket($options[OSSOptions::BUCKET])->setKey($options[OSSOptions::KEY])->setMethod($options[OSSOptions::META_ONLY] ? HttpMethods::HEAD : HttpMethods::GET)->addOverrides($options)->build();
 }
Example #4
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;
 }