Esempio n. 1
0
        public async Task <IList <BlobContainer> > GetContainers(BlobContainer container)
        {
            var fullPath = Path.Combine(_root, container.Identifier);
            var dirInfo  = new DirectoryInfo(fullPath);

            return(dirInfo.GetDirectories().Select(x => ConstructContainer(x)).ToList());
        }
Esempio n. 2
0
        public async Task <IList <Blob> > GetBlobs(BlobContainer container)
        {
            var fullPath = Path.Combine(_root, container.Identifier);
            var dirInfo  = new DirectoryInfo(fullPath);

            return(dirInfo.GetFiles().Select(fi => ConstructBlob(fi)).ToList());
        }
Esempio n. 3
0
        public async Task <BlobContainer> CreateContainer(BlobContainer container)
        {
            //The Identifier is full path of the directory.
            var fullPath = Path.Combine(_root, container.Identifier);
            var dirInfo  = new DirectoryInfo(fullPath);

            if (dirInfo.Exists == false)
            {
                dirInfo.Create();
            }
            if (Directory.Exists(container.Identifier))
            {
                Directory.CreateDirectory(container.Identifier);
            }
            return(ConstructContainer(dirInfo));
        }
Esempio n. 4
0
        private BlobContainer ConstructContainer(DirectoryInfo item)
        {
            var relativePath = item.FullName.Replace(_root, string.Empty).Replace("\\", "/"); //Get the relative url from the path
            var result       = new BlobContainer
            {
                BlobStorage = this,
                DisplayName = item.Name,
                Name        = item.Name,
                Identifier  = relativePath,
                Uri         = relativePath,
                Metadata    = new PropertyBag
                {
                    { "CreationTimeUtc", item.CreationTimeUtc },
                    { "LastWriteTimeUtc", item.LastWriteTimeUtc },
                    { "LastAccessTimeUtc", item.LastAccessTimeUtc }
                }
            };

            return(result);
        }