/**
  * @depends testCreateBucket
  */
 public function testObjectMetadata()
 {
     $object_name = "test-object-metadata.txt";
     $content = "hello object!!";
     $metadata = new FDSObjectMetadata();
     $metadata->addUserMetadata("x-xiaomi-meta-" . "test", "test-metadata");
     $metadata->setCacheControl("max-age=86400");
     $metadata->setContentEncoding("abaaaaa");
     $metadata->setContentMD5("aaaaaaaaccccccc");
     self::$fds_client->putObject(self::$bucket_name, $object_name, $content, $metadata);
     $object = self::$fds_client->getObject(self::$bucket_name, $object_name);
     $this->assertNotNull($object);
     $object_metadata = $object->getObjectMetadata();
     $this->assertNotNull($object_metadata);
     $raw_metadata = $metadata->getRawMetadata();
     $raw_object_metadata = $object_metadata->getRawMetadata();
     foreach ($raw_metadata as $key => $value) {
         $this->assertTrue(array_key_exists($key, $raw_object_metadata));
         $this->assertEquals($value, $raw_object_metadata[$key]);
     }
     $this->assertEquals(md5($content), $object_metadata->getContentMD5());
 }
예제 #2
0
 public function postObject($bucket_name, $content, $metadata = NULL)
 {
     $uri = $this->formatUri($this->fds_config->getUploadBaseUri(), $bucket_name . "/");
     if ($this->fds_config->isEnableMd5Calculate()) {
         if ($metadata == NULL) {
             $metadata = new FDSObjectMetadata();
         }
         $metadata->setContentMD5(md5($content));
     }
     $header = $this->prepareRequestHeader($uri, Http::POST, self::APPLICATION_OCTET_STREAM, $metadata);
     $response = $this->invoke(Action::PostObject, $uri, $header, Http::POST, null, $content);
     if ($response->code == self::HTTP_OK) {
         $result = PutObjectResult::fromJson($response->body);
         return $result;
     } else {
         $message = "Post object failed, status=" . $response->code . ", bucket_name=" . $bucket_name . ", reason=" . $response->raw_body;
         $this->printResponse($response);
         throw new GalaxyFDSClientException($message);
     }
 }