--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/lib/Zend/Service/Rackspace/Files/Object.php Thu Mar 21 19:52:38 2013 +0100
@@ -0,0 +1,271 @@
+<?php
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category Zend
+ * @package Zend_Service_Rackspace
+ * @subpackage Files
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+
+require_once 'Zend/Service/Rackspace/Files.php';
+
+class Zend_Service_Rackspace_Files_Object
+{
+ /**
+ * The service that has created the object
+ *
+ * @var Zend_Service_Rackspace_Files
+ */
+ protected $service;
+ /**
+ * Name of the object
+ *
+ * @var string
+ */
+ protected $name;
+ /**
+ * MD5 value of the object's content
+ *
+ * @var string
+ */
+ protected $hash;
+ /**
+ * Size in bytes of the object's content
+ *
+ * @var integer
+ */
+ protected $size;
+ /**
+ * Content type of the object's content
+ *
+ * @var string
+ */
+ protected $contentType;
+ /**
+ * Date of the last modified of the object
+ *
+ * @var string
+ */
+ protected $lastModified;
+ /**
+ * Object content
+ *
+ * @var string
+ */
+ protected $content;
+ /**
+ * Name of the container where the object is stored
+ *
+ * @var string
+ */
+ protected $container;
+ /**
+ * Constructor
+ *
+ * You must pass the Zend_Service_Rackspace_Files object of the caller and an associative
+ * array with the keys "name", "container", "hash", "bytes", "content_type",
+ * "last_modified", "file" where:
+ * name= name of the object
+ * container= name of the container where the object is stored
+ * hash= the MD5 of the object's content
+ * bytes= size in bytes of the object's content
+ * content_type= content type of the object's content
+ * last_modified= date of the last modified of the object
+ * content= content of the object
+ *
+ * @param Zend_Service_Rackspace_Files $service
+ * @param array $data
+ */
+ public function __construct($service,$data)
+ {
+ if (!($service instanceof Zend_Service_Rackspace_Files) || !is_array($data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass a RackspaceFiles and an array");
+ }
+ if (!array_key_exists('name', $data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass the name of the object in the array (name)");
+ }
+ if (!array_key_exists('container', $data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass the container of the object in the array (container)");
+ }
+ if (!array_key_exists('hash', $data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass the hash of the object in the array (hash)");
+ }
+ if (!array_key_exists('bytes', $data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass the byte size of the object in the array (bytes)");
+ }
+ if (!array_key_exists('content_type', $data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass the content type of the object in the array (content_type)");
+ }
+ if (!array_key_exists('last_modified', $data)) {
+ require_once 'Zend/Service/Rackspace/Files/Exception.php';
+ throw new Zend_Service_Rackspace_Files_Exception("You must pass the last modified data of the object in the array (last_modified)");
+ }
+ $this->name= $data['name'];
+ $this->container= $data['container'];
+ $this->hash= $data['hash'];
+ $this->size= $data['bytes'];
+ $this->contentType= $data['content_type'];
+ $this->lastModified= $data['last_modified'];
+ if (!empty($data['content'])) {
+ $this->content= $data['content'];
+ }
+ $this->service= $service;
+ }
+ /**
+ * Get name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+ /**
+ * Get the name of the container
+ *
+ * @return string
+ */
+ public function getContainer()
+ {
+ return $this->container;
+ }
+ /**
+ * Get the MD5 of the object's content
+ *
+ * @return string|boolean
+ */
+ public function getHash()
+ {
+ return $this->hash;
+ }
+ /**
+ * Get the size (in bytes) of the object's content
+ *
+ * @return integer|boolean
+ */
+ public function getSize()
+ {
+ return $this->size;
+ }
+ /**
+ * Get the content type of the object's content
+ *
+ * @return string
+ */
+ public function getContentType()
+ {
+ return $this->contentType;
+ }
+ /**
+ * Get the data of the last modified of the object
+ *
+ * @return string
+ */
+ public function getLastModified()
+ {
+ return $this->lastModified;
+ }
+ /**
+ * Get the content of the object
+ *
+ * @return string
+ */
+ public function getContent()
+ {
+ return $this->content;
+ }
+ /**
+ * Get the metadata of the object
+ * If you don't pass the $key it returns the entire array of metadata value
+ *
+ * @param string $key
+ * @return string|array|boolean
+ */
+ public function getMetadata($key=null)
+ {
+ $result= $this->service->getMetadataObject($this->container,$this->name);
+ if (!empty($result)) {
+ if (empty($key)) {
+ return $result['metadata'];
+ }
+ if (isset($result['metadata'][$key])) {
+ return $result['metadata'][$key];
+ }
+ }
+ return false;
+ }
+ /**
+ * Set the metadata value
+ * The old metadata values are replaced with the new one
+ *
+ * @param array $metadata
+ * @return boolean
+ */
+ public function setMetadata($metadata)
+ {
+ return $this->service->setMetadataObject($this->container,$this->name,$metadata);
+ }
+ /**
+ * Copy the object to another container
+ * You can add metadata information to the destination object, change the
+ * content_type and the name of the object
+ *
+ * @param string $container_dest
+ * @param string $name_dest
+ * @param array $metadata
+ * @param string $content_type
+ * @return boolean
+ */
+ public function copyTo($container_dest,$name_dest,$metadata=array(),$content_type=null)
+ {
+ return $this->service->copyObject($this->container,$this->name,$container_dest,$name_dest,$metadata,$content_type);
+ }
+ /**
+ * Get the CDN URL of the object
+ *
+ * @return string
+ */
+ public function getCdnUrl()
+ {
+ $result= $this->service->getInfoCdnContainer($this->container);
+ if ($result!==false) {
+ if ($result['cdn_enabled']) {
+ return $result['cdn_uri'].'/'.$this->name;
+ }
+ }
+ return false;
+ }
+ /**
+ * Get the CDN SSL URL of the object
+ *
+ * @return string
+ */
+ public function getCdnUrlSsl()
+ {
+ $result= $this->service->getInfoCdnContainer($this->container);
+ if ($result!==false) {
+ if ($result['cdn_enabled']) {
+ return $result['cdn_uri_ssl'].'/'.$this->name;
+ }
+ }
+ return false;
+ }
+}