code: public function putBlob($containerName = '', $blobName = '', $localFileName = '', $metadata = array(), $leaseId = null, $additionalHeaders = array())
      {
          Assertion::notEmpty($containerName, 'Container name is not specified');
          self::assertValidContainerName($containerName);
          Assertion::notEmpty($blobName, 'Blob name is not specified.');
          Assertion::notEmpty($localFileName, 'Local file name is not specified.');
          Assertion::file($localFileName, 'Local file name is not specified.');
          self::assertValidRootContainerBlobName($containerName, $blobName);
  
          if (filesize($localFileName) >= self::MAX_BLOB_SIZE) {
              return $this->putLargeBlob($containerName, $blobName, $localFileName, $metadata, $leaseId, $additionalHeaders);
          }
  
          return $this->putBlobData($containerName, $blobName, file_get_contents($localFileName), $metadata, $leaseId, $additionalHeaders);
      }
docs: Put blob
  
  @param string $containerName      Container name
  @param string $blobName           Blob name
  @param string $localFileName      Local file name to be uploaded
  @param array  $metadata           Key/value pairs of meta data
  @param string $leaseId            Lease identifier
  @param array  $additionalHeaders  Additional headers. See http://msdn.microsoft.com/en-us/library/dd179371.aspx for more information.
  @return object Partial blob properties
  @throws BlobException