code: public function putBlock($containerName = '', $blobName = '', $identifier = '', $contents = '', $leaseId = null)
      {
          Assertion::notEmpty($containerName, 'Container name is not specified');
          self::assertValidContainerName($containerName);
          Assertion::notEmpty($blobName, 'Blob name is not specified.');
          Assertion::notEmpty($identifier, 'Block identifier is not specified.');
          self::assertValidRootContainerBlobName($containerName, $blobName);
  
          if (strlen($contents) > self::MAX_BLOB_TRANSFER_SIZE) {
              throw new BlobException('Block size is too big.');
          }
  
          $headers = array();
          if (!is_null($leaseId)) {
              $headers['x-ms-lease-id'] = $leaseId;
          }
  
          $resourceName = self::createResourceName($containerName , $blobName);
  
          $response = $this->performRequest($resourceName, array('comp' => 'block', 'blockid' => base64_encode($identifier)), 'PUT', $headers, false, $contents, self::RESOURCE_BLOB, self::PERMISSION_WRITE);
          if ( ! $response->isSuccessful()) {
              throw new BlobException($this->getErrorMessage($response, 'Resource could not be accessed.'));
          }
      }
docs: Put large blob block
  
  @param string $containerName Container name
  @param string $blobName      Blob name
  @param string $identifier    Block ID
  @param array  $contents      Contents of the block
  @param string $leaseId       Lease identifier
  @throws BlobException