Beispiel #1
0
 /**
  * Store an item in the storage service.
  * WARNING: This operation overwrites any item that is located at
  * $destinationPath.
  * @param string $destinationPath
  * @param mixed  $data
  * @param  array $options
  * @return boolean
  */
 public function storeItem($destinationPath, $data, $options = null)
 {
     // Create a temporary file that will be uploaded
     $temporaryFilePath = '';
     $removeTemporaryFilePath = false;
     if (is_resource($data)) {
         $temporaryFilePath = tempnam('', 'azr');
         $fpDestination = fopen($temporaryFilePath, 'w');
         $fpSource = $data;
         rewind($fpSource);
         while (!feof($fpSource)) {
             fwrite($fpDestination, fread($fpSource, 8192));
         }
         fclose($fpDestination);
         $removeTemporaryFilePath = true;
     } elseif (file_exists($data)) {
         $temporaryFilePath = $data;
         $removeTemporaryFilePath = false;
     } else {
         $temporaryFilePath = tempnam('', 'azr');
         file_put_contents($temporaryFilePath, $data);
         $removeTemporaryFilePath = true;
     }
     try {
         // Upload data
         $this->_storageClient->putBlob($this->_container, $destinationPath, $temporaryFilePath);
     } catch (Zend_Service_WindowsAzure_Exception $e) {
         @unlink($temporaryFilePath);
         throw new Zend_Cloud_StorageService_Exception('Error on store: ' . $e->getMessage(), $e->getCode(), $e);
     }
     if ($removeTemporaryFilePath) {
         @unlink($temporaryFilePath);
     }
 }