phpazureazure-blob-storage

Change Default Service Version of Microsoft Azure Blob - PHP


$this->blobClient = ServicesBuilder::getInstance()
                                ->createBlobService($azureString);

$properties = $this->blobClient->getServiceProperties();

How can i change the default service version of microsoft azure?

Currently it is set at 2009-09-19. i want to change it to 2012-02-12.

Thanks.


Solution

  • To expand on Aaron Chen's answer, you can actually set the default service version permanently, so that you don't have to provide the x-ms-version request header to get newer features for public requests (like "Accept-Ranges: bytes" header for example). It is a bit of a hassle though, because almost no SDK actually supports setting this property. What worked for me is to use the following PowerShell code. It's for Windows only (the DotNetCore-Azure modules for other platforms do not support that either), but it works using the Cloud Shell within Azure Portal if you don't have access to a Windows environment.

    Within Cloud Shell:

    PS Azure:\> $ctx = New-AzureStorageContext -StorageAccountName <account-name> -StorageAccountKey <key>
    Azure:\
    PS Azure:\> Update-AzureStorageServiceProperty -ServiceType Blob -DefaultServiceVersion 2017-07-29 -Context $ctx
    

    This will set the default version of the storage account's service to 2017-07-29 (the newest at the time of this writing) for all requests which don't provide their own x-ms-version header. See this list for an overview of the different versions available.

    Within a Windows PowerShell environment you have to install the Azure modules as well:

    As an admin:

    Install-Module -Name AzureRM -AllowClobber
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
    

    As a user

    Import-Module Azure.Storage
    $ctx = New-AzureStorageContext -StorageAccountName <account-name> -StorageAccountKey <key>
    Update-AzureStorageServiceProperty -ServiceType Blob -DefaultServiceVersion 2017-07-29 -Context $ctx