コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        /// <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));
        }