public void uploadfromFilesystem(CloudBlockBlob blob, string localFilePath, string eventType) { if (eventType.Equals("create") || eventType.Equals("signUpStart")) { Program.ClientForm.addtoConsole("Upload started[create || signUpStart]:" + localFilePath); blob.UploadFromFile(localFilePath, FileMode.Open); Program.ClientForm.addtoConsole("Uploaded"); Program.ClientForm.ballon("Uploaded:"+ localFilePath); } else { try { Program.ClientForm.addtoConsole("Upload started[change,etc]:" + localFilePath); string leaseId = Guid.NewGuid().ToString(); blob.AcquireLease(TimeSpan.FromMilliseconds(16000), leaseId); blob.UploadFromFile(localFilePath, FileMode.Open, AccessCondition.GenerateLeaseCondition(leaseId)); blob.ReleaseLease(AccessCondition.GenerateLeaseCondition(leaseId)); Program.ClientForm.addtoConsole("Uploaded"); Program.ClientForm.ballon("Uploaded:" + localFilePath); } catch (Exception ex) { Program.ClientForm.addtoConsole("Upload: second attempt"); Thread.Sleep(5000); string leaseId = Guid.NewGuid().ToString(); blob.AcquireLease(TimeSpan.FromMilliseconds(16000), leaseId); blob.UploadFromFile(localFilePath, FileMode.Open, AccessCondition.GenerateLeaseCondition(leaseId)); blob.ReleaseLease(AccessCondition.GenerateLeaseCondition(leaseId)); Program.ClientForm.addtoConsole("Uploaded"); Program.ClientForm.ballon("Uploaded:" + localFilePath); } } }
public void ReleaseLease(CloudBlockBlob blob) { if (!HasLease(blob)) return; string leaseId = GetLeaseId(blob); ClearLease(blob); try { blob.ReleaseLease(new AccessCondition { LeaseId = leaseId }); } catch (StorageException) { Trace.WriteLine(string.Format(FAILED_ATTEMPT_AT_RELEASING_BLOB_LEASE, blob.Name, leaseId)); } }
public static void Leased(CloudBlockBlob blob, Action<CloudBlockBlob> a) { var lease = blob.AcquireLease(TimeSpan.FromSeconds(60), null); try { a(blob); } finally { blob.ReleaseLease(AccessCondition.GenerateLeaseCondition(lease)); } }
private void ReleaseLockInternal(LockArgs lockArgs, LockContext context, CloudBlockBlob blob, string leaseId) { context.AutoRenew = false; var releaseTask = new Task(() => { blob.ReleaseLease(new AccessCondition() { LeaseId = leaseId }); if (LockReleased != null) LockReleased(lockArgs); }); if (LockReleaseMode == AzureStorage.LockReleaseMode.Asyncronous) { releaseTask.Start(); } else if (LockReleaseMode == AzureStorage.LockReleaseMode.Syncronous) { releaseTask.RunSynchronously(); } else if (LockReleaseMode == AzureStorage.LockReleaseMode.LetExpire) { // Do nothing } else { throw new NotImplementedException("There should not be a possibility for an else"); } }