lib/Beberlei/AzureBlobStorage/BlobClient.php
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')
        );
    }
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')
        );
    }
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