code: public function leaseBlob($containerName = '', $blobName = '', $leaseAction = self::LEASE_ACQUIRE, $leaseId = null)
      {
          Assertion::notEmpty($containerName, 'Container name is not specified');
          self::assertValidContainerName($containerName);
          Assertion::notEmpty($blobName, 'Blob name is not specified.');
          self::assertValidRootContainerBlobName($containerName, $blobName);
  
          $headers = array();
          $headers['x-ms-lease-action'] = strtolower($leaseAction);
          if (!is_null($leaseId)) {
              $headers['x-ms-lease-id'] = $leaseId;
          }
  
          $resourceName = self::createResourceName($containerName , $blobName);
  
          $response = $this->performRequest($resourceName, array('comp' => 'lease'), 'PUT', $headers, false, null, self::RESOURCE_BLOB, self::PERMISSION_WRITE);
          if ( ! $response->isSuccessful()) {
              throw new BlobException($this->getErrorMessage($response, 'Resource could not be accessed.'));
          }
  
          return new LeaseInstance(
              $containerName,
              $blobName,
              $response->getHeader('x-ms-lease-id'),
              $response->getHeader('x-ms-lease-time')
          );
      }
docs: Lease blob - See (http://msdn.microsoft.com/en-us/library/ee691972.aspx)
  
  @param string $containerName      Container name
  @param string $blobName           Blob name
  @param string $leaseAction        Lease action (Blob::LEASE_*)
  @param string $leaseId            Lease identifier, required to renew the lease or to release the lease.
  @return Microsoft_WindowsAzure_Storage_LeaseInstance Lease instance
  @throws BlobException