Exemplo n.º 1
0
        private async void PagePrev()
        {
            var queryObject = new BlobManipulationData();

            if (currentPage > 0)
            {
                queryObject.Skip = 10 * --currentPage;
            }

            else
            {
                queryObject.Skip = 0;
            }

            queryObject.Take          = PAGING_TAKE;
            queryObject.ContainerName = "testcontainer";

            var dataToken   = JToken.FromObject(queryObject);
            var blobsJToken = await App.MobileService.InvokeApiAsync("pageblobs", dataToken);



            var blobs = JsonConvert.DeserializeObject(blobsJToken.ToString());

            var source = blobsJToken.Values <string>("name").ToList <string>();

            this.lstBlobs.ItemsSource = source;
        }
Exemplo n.º 2
0
        private async void Upld()
        {
            var filePicker = new FileOpenPicker();

            filePicker.SuggestedStartLocation = PickerLocationId.ComputerFolder;

            filePicker.FileTypeFilter.Clear();

            filePicker.FileTypeFilter.Add("*");

            var selectedFile = await filePicker.PickSingleFileAsync();

            if (selectedFile != null)
            {
                var stream = await selectedFile.OpenStreamForReadAsync();

                stream.Position = 0;

                var fileData = new byte[stream.Length];

                await stream.ReadAsync(fileData, 0, (int)stream.Length);

                var queryObject = new BlobManipulationData();

                queryObject.BlobName      = selectedFile.Name;
                queryObject.BlobData      = fileData;
                queryObject.ContainerName = "testcontainer";

                var dataToken = JToken.FromObject(queryObject);

                await App.MobileService.InvokeApiAsync("uploadblob", dataToken);
            }
        }
        public async Task <IEnumerable <CloudBlockBlob> > PageBlobsInContainer(BlobManipulationData data)
        {
            await InitBlobContainer(data);

            var blobs = container.ListBlobs().OfType <CloudBlockBlob>().Skip(data.Skip).Take(data.Take);

            return(blobs);
        }
        public async Task DeleteBlob(BlobManipulationData data)
        {
            await InitBlobContainer(data);

            var blob = container.GetBlockBlobReference(data.BlobName);

            await blob.DeleteIfExistsAsync();
        }
        public async Task <IEnumerable <CloudBlockBlob> > GetAllBlobsInContainer(BlobManipulationData data)
        {
            await InitBlobContainer(data);

            var blobs = container.ListBlobs().OfType <CloudBlockBlob>();

            return(blobs);
        }
        public async Task UploadBlob(BlobManipulationData data)
        {
            await InitBlobContainer(data);

            var blob = container.GetBlockBlobReference(data.BlobName);

            await blob.UploadFromByteArrayAsync(data.BlobData, 0, data.BlobData.Length);
        }
        public async Task <int> GetBlobCount(BlobManipulationData data)
        {
            return(await Task.Run <int>(async() => {
                await InitBlobContainer(data);

                //Lazy. Therefore convert that thing to a list.
                return container.ListBlobs().ToList().Count;
            }));
        }
Exemplo n.º 8
0
        private async void Del(string blobName)
        {
            var queryObject = new BlobManipulationData();

            queryObject.BlobName      = queryObject.BlobName = (string)lstBlobs.SelectedValue;
            queryObject.ContainerName = "testcontainer";

            var dataToken   = JToken.FromObject(queryObject);
            var blobsJToken = await App.MobileService.InvokeApiAsync("deleteblob", dataToken);
        }
        /// <summary>
        /// Initializes the BLOB container.
        /// </summary>
        /// <param name="data">The data.</param>
        /// <returns></returns>
        private async Task InitBlobContainer(BlobManipulationData data)
        {
            var storageConnection = Services.Settings["StorageConnectionString"];

            storageAccount = CloudStorageAccount.Parse(storageConnection);

            blobClient = storageAccount.CreateCloudBlobClient();

            container = blobClient.GetContainerReference(data.ContainerName);

            await container.CreateIfNotExistsAsync();
        }
Exemplo n.º 10
0
        private async Task LoadFirstTenBlobEntries()
        {
            var queryObject = new BlobManipulationData();

            queryObject.Skip          = PAGING_SKIP;
            queryObject.Take          = PAGING_TAKE;
            queryObject.ContainerName = "testcontainer";

            var dataToken   = JToken.FromObject(queryObject);
            var blobsJToken = await App.MobileService.InvokeApiAsync("pageblobs", dataToken);

            var blobs = JsonConvert.DeserializeObject(blobsJToken.ToString());

            var source = blobsJToken.Values <string>("name").ToList <string>();

            this.lstBlobs.ItemsSource = source;
        }
        public async Task RenameBlob(BlobManipulationData data)
        {
            await InitBlobContainer(data);

            var blob = container.GetBlockBlobReference(data.BlobName);

            var exists = await blob.ExistsAsync();


            if (exists)
            {
                var renameTo = container.GetBlockBlobReference(data.NewBlobName);

                //copy the blob to rename to the new one
                await renameTo.StartCopyFromBlobAsync(blob);

                //delete the existing blob
                await blob.DeleteAsync();
            }
        }
        public async Task <byte[]> DownloadBlob(BlobManipulationData data)
        {
            return(await Task.Run <byte[]>(() => {
                var storageConnection = Services.Settings["StorageConnectionString"];

                storageAccount = CloudStorageAccount.Parse(storageConnection);

                blobClient = storageAccount.CreateCloudBlobClient();

                container = blobClient.GetContainerReference(data.ContainerName);

                var blob = container.GetBlockBlobReference(data.BlobName);

                blob.FetchAttributes();

                var blobData = new byte[blob.Properties.Length];

                blob.DownloadToByteArray(blobData, 0);

                return blobData;
            }));
        }
Exemplo n.º 13
0
        private async void Dwnld(string blobName)
        {
            var queryObject = new BlobManipulationData();

            queryObject.BlobName      = (string)lstBlobs.SelectedValue;
            queryObject.ContainerName = "testcontainer";


            var dataToken = JToken.FromObject(queryObject);

            var blobsJToken = await App.MobileService.InvokeApiAsync("dowloadblob", dataToken);

            var blobData = blobsJToken.ToObject <byte[]>();

            StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;

            StorageFile storageFile = await folder.CreateFileAsync(queryObject.BlobName, CreationCollisionOption.ReplaceExisting);

            var stream = await storageFile.OpenStreamForWriteAsync();

            await stream.WriteAsync(blobData, 0, blobData.Length);

            stream.Dispose();
        }