public boolean uploadBlobs(MessageFormatWriteSet messageSetToWrite) throws CloudStorageException {
    // Each input stream is a blob
    Timer.Context storageTimer = azureMetrics.blobBatchUploadLatency.time();
    MessageSievingInputStream stream = (MessageSievingInputStream) messageSetToWrite.getStreamToWrite();
    ListIterator<InputStream> messageStreamListIter = stream.getValidMessageStreamList().listIterator();
    boolean unused_ret = true;
    for (MessageInfo messageInfo: stream.getValidMessageInfoList()) {
      BlobId blobId = (BlobId) messageInfo.getStoreKey();
      CloudBlobMetadata cloudBlobMetadata =
          new CloudBlobMetadata(blobId, messageInfo.getOperationTimeMs(), messageInfo.getExpirationTimeInMs(),
              messageInfo.getSize(), CloudBlobMetadata.EncryptionOrigin.NONE, messageInfo.getLifeVersion());
      cloudBlobMetadata.setReplicaLocation(stream.getReplicaLocation());
      unused_ret &= uploadBlob(blobId, messageInfo.getSize(), cloudBlobMetadata, messageStreamListIter.next());
    }
    storageTimer.stop();
    // Unused return value
    return unused_ret;
  }
Uploads a stream of blobs to Azure cloud
@param messageSetToWrite Messages replicated from servr
@return Unused boolean
@throws CloudStorageException
ambry-cloud/src/main/java/com/github/ambry/cloud/azure/AzureCloudDestinationSync.java