public void SaveAsync(string objId, T obj, TimeSpan?expire = null) { Debug.Assert(!string.IsNullOrWhiteSpace(objId)); Debug.Assert(null != obj); CloudBlob blob = _container.GetBlobReference(String.Concat(objId, ".json")); blob.Properties.ContentType = _contentType; string json = JsonConvert.SerializeObject(obj); byte[] bytes = Encoding.UTF8.GetBytes(json); using (MemoryStream stream = new MemoryStream(bytes)) { _log.InfoFormat("Saving {0}: {1}", objId, json); blob.BeginUploadFromStream(stream, (ar) => { var resultBlob = ar.AsyncState as CloudBlob; resultBlob.EndUploadFromStream(ar); if (expire.HasValue) { resultBlob.SetExpiration(expire.Value); } }, blob); } }
public void SaveAsync(string objId, byte[] obj, TimeSpan?expire = null) { Debug.Assert(!string.IsNullOrWhiteSpace(objId)); Debug.Assert(null != obj); CloudBlob blob = _container.GetBlobReference(objId); _log.InfoFormat("Saving file {0} to {1}", objId, _container.Name); blob.Properties.ContentType = _contentType; using (MemoryStream stream = new MemoryStream(obj)) { blob.BeginUploadFromStream(stream, (ar) => { var resultBlob = ar.AsyncState as CloudBlob; resultBlob.EndUploadFromStream(ar); if (expire.HasValue) { resultBlob.SetExpiration(expire.Value); } }, blob); } }
/// <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)); }