public BeginUploadFromStream ( Stream source, AsyncCallback callback, object state ) : IAsyncResult | ||
source | Stream | The stream providing the blob content. |
callback | AsyncCallback | The callback delegate that will receive notification when the asynchronous operation completes. |
state | object | A user-defined object that will be passed to the callback delegate. |
Résultat | IAsyncResult |
/// <summary> /// Puts the specified object onto the cloud storage provider. /// </summary> /// <param name="o">The object to store.</param> public void Put(AzureCloudFile o) { if (o.Data == null) throw new ArgumentNullException("o", "AzureCloudFile cannot be null."); if (o.Uri == null) throw new ArgumentException("Parameter 'Uri' of argument 'o' cannot be null."); string path = o.Uri.ToString(); if (path.StartsWith(@"/")) path = path.Remove(0, 1); if (path.StartsWith(@"\\")) path = path.Remove(0, 1); if (path.StartsWith(@"\")) path = path.Remove(0, 1); // Remove double back slashes from anywhere in the path path = path.Replace(@"\\", @"\"); CloudBlobContainer container = _blobClient.GetContainerReference(ContainerName); container.CreateIfNotExist(); // Set permissions on the container BlobContainerPermissions perms = container.GetPermissions(); if (perms.PublicAccess != BlobContainerPublicAccessType.Container) { perms.PublicAccess = BlobContainerPublicAccessType.Container; container.SetPermissions(perms); } // Create a reference for the filename String uniqueName = path; blob = container.GetBlobReference(uniqueName); // Create a new AsyncCallback instance AsyncCallback callback = PutOperationCompleteCallback; blob.BeginUploadFromStream(new MemoryStream(o.Data), callback, o.Uri); // Uncomment for synchronous upload // blob.UploadFromStream(new System.IO.MemoryStream(o.Data)); }