/** * @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()); }
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); } }