Exemple #1
0
        private async Task <Batch> ProcessFile(string path)
        {
            Batch batch = null;
            await semaphore.WaitAsync();

            try
            {
                if (!File.Exists(path))
                {
                    throw new FileNotFoundException(path);
                }

                int i;
                lock (syncCounter)
                {
                    i = processedFilesCounter++;
                }

                UploadJob job = new UploadJob(Blob.FromFile(path));
                job.SetFileId(i);
                job.SetChunked(IsChunkedUpload);
                job.SetChunkSize(ChunkSize);
                batch = await UploadBlob(job);
            }
            finally
            {
                semaphore.Release();
            }
            return(batch);
        }
Exemple #2
0
 private async Task <Batch> UploadBlob(UploadJob job)
 {
     try
     {
         return(await Batch.Upload(job));
     }
     catch (ServerErrorException exception)
     {
         throw new FailedToUploadException(job.ToString(), exception);
     }
 }