protected override void PerformUpload()
        {
            if (!Directory.Exists(Options.TemporaryDirectory))
            {
                Directory.CreateDirectory(Options.TemporaryDirectory);
            }

            var tempFile = Path.Combine(Options.TemporaryDirectory, Guid.NewGuid().ToString());

            try
            {
                ReliableCloudOperations.RetryRead(() => DownloadSource(tempFile));

                ReliableCloudOperations.RetryWrite(() =>
                {
                    if (Blob.Exists())
                    {
                        return;
                    }
                    Blob.UploadFromFile(
                        tempFile,
                        FileMode.Open,
                        options: Options.BlobRequestOptions,
                        accessCondition: AccessConditions.CreateIfNotExists());
                });
            }
            finally
            {
                File.Delete(tempFile);
            }
        }
 protected override void PerformUpload()
 {
     _stream.EnsureAtStart();
     _stream = Store.Cache.Add(FileKey, _stream, Length);
     ReliableCloudOperations.RetryWrite(() =>
     {
         if (Blob.Exists())
         {
             return;
         }
         _stream.EnsureAtStart();
         Blob.UploadFromStream(
             _stream,
             options: Options.BlobRequestOptions,
             accessCondition: AccessConditions.CreateIfNotExists());
     });
 }