Exemplo n.º 1
0
        public async Task<IStorageDirectory> CreateDirectory(IStorageDirectory parent, string name)
        {
            var newName = name + "/";

            await CreateFile(parent, newName, new MemoryStream(0));
            return await GetDirectory(new Uri(parent.Uri + newName));
        }
Exemplo n.º 2
0
        public void GetRootOfRootDirectory()
        {
            IStorageDirectory directory = _client.GetDirectory(null).Result;

            Assert.AreEqual(directory.GetParent(), null);
            // Cleanup
        }
Exemplo n.º 3
0
        public async Task CreateFile(IStorageDirectory directory, string name, Stream file)
        {
            AWSStorageDirectory s3Directory = (directory as AWSStorageDirectory);

            if (s3Directory != null)
            {
                S3FileInfo s3File = s3Directory.DirectoryInfo.GetFile(name);
                if (!s3File.Exists)
                {
                    string fullName = s3Directory.DirectoryInfo.GetDirectoryPath() + name;

                    var request = new PutObjectRequest
                    {
                        BucketName  = s3File.Directory.Bucket.Name,
                        Key         = fullName,
                        InputStream = file
                    };

                    PutObjectResponse response = await Task.Factory.FromAsync(
                        _client.BeginPutObject(request, null, null),
                        (result) => _client.EndPutObject(result));
                }
                else
                {
                    throw new ArgumentException("File already exists");
                }
            }
            else
            {
                throw new ArgumentException("directory parameter must be created through the AWS library");
            }
        }
Exemplo n.º 4
0
        public void GetRootDirectory()
        {
            IStorageDirectory directory = _client.GetDirectory(null).Result;

            Assert.AreEqual(directory.Name, "cloudsnet");
            // Cleanup
        }
Exemplo n.º 5
0
        public async Task <IStorageDirectory> CreateDirectory(IStorageDirectory parent, string name)
        {
            var newName = name + "/";

            await CreateFile(parent, newName, new MemoryStream(0));

            return(await GetDirectory(new Uri(parent.Uri + newName)));
        }
Exemplo n.º 6
0
        public AzureStorageProvider(string connectionString)
        {
            _account = CloudStorageAccount.Parse(connectionString);

            var client = _account.CreateCloudBlobClient();

            _rootDir = new AzureStorageDirectory(client.GetRootContainerReference());
        }
Exemplo n.º 7
0
        public AzureStorageProvider(string connectionString)
        {
            _account = CloudStorageAccount.Parse(connectionString);

            var client = _account.CreateCloudBlobClient();

            _rootDir = new AzureStorageDirectory(client.GetRootContainerReference());
        }
Exemplo n.º 8
0
        public void CreateFileInSubDir()
        {
            IStorageDirectory directory = client.CreateDirectory(null, Guid.NewGuid().ToString()).Result;
            MemoryStream      ms        = new MemoryStream(Encoding.Default.GetBytes("this is a test"));

            client.CreateFile(directory, Guid.NewGuid().ToString(), ms).Wait();

            Assert.AreEqual(directory.GetFiles().Count(), 1);
        }
Exemplo n.º 9
0
 /// <summary>
 /// 初始化类<see cref="FileStorageCache"/>。
 /// </summary>
 /// <param name="cache">缓存接口。</param>
 /// <param name="root">存储文件夹。</param>
 /// <param name="db">缓存数据库操作接口。</param>
 public FileStorageCache(IMemoryCache cache, IStorageDirectory root, IDbContext <StorageCache> db)
 {
     _cache     = cache;
     _db        = db;
     _cacheRoot = root.GetPhysicalPath("caches");
     if (!Directory.Exists(_cacheRoot))
     {
         Directory.CreateDirectory(_cacheRoot);
     }
 }
Exemplo n.º 10
0
 /// <summary>
 /// 初始化类<see cref="MediaDirectory"/>。
 /// </summary>
 /// <param name="directory">存储文件夹。</param>
 /// <param name="mfdb">数据库操作接口。</param>
 /// <param name="sfdb">数据库操作接口。</param>
 public MediaDirectory(IStorageDirectory directory, IDbContext <MediaFile> mfdb, IDbContext <StoredFile> sfdb)
 {
     _directory = directory;
     _mfdb      = mfdb;
     _sfdb      = sfdb;
     //媒体文件夹。
     _media = directory.GetPhysicalPath("media");
     //缩略图文件夹
     _thumbs = directory.GetPhysicalPath("media/thumbs");
 }
Exemplo n.º 11
0
        public void GetFirstLevelSubDirectory()
        {
            string name = Guid.NewGuid().ToString();
            Uri    uri  = new Uri(name + "/", UriKind.Relative);

            _client.CreateDirectory(null, name).Wait();
            IStorageDirectory directory = _client.GetDirectory(uri).Result;

            Assert.AreEqual(directory.Uri.ToString(), uri.ToString());
            // Cleanup
        }
Exemplo n.º 12
0
        public void CreateSubDirectory()
        {
            // Setup
            IStorageDirectory newDirectory = _client.CreateDirectory(null, Guid.NewGuid().ToString()).Result;
            // Test
            IStorageDirectory subDirectory = _client.CreateDirectory(newDirectory, "sub").Result;

            Assert.AreEqual(subDirectory.GetParent().Name, newDirectory.Name);
            Assert.AreEqual(newDirectory.GetDirectories().Single().Name, "sub");
            // Cleanup
        }
Exemplo n.º 13
0
        public async Task <IStorageDirectory> CreateDirectory(IStorageDirectory parent, string name)
        {
            AWSStorageDirectory newDirectory = null;

            // Verify the directory name ends with a / (specifies its a directory in AWS)


            S3DirectoryInfo parentDirectory;

            if (parent == null)
            {
                parentDirectory = _rootDirectory;
            }
            else
            {
                parentDirectory = ((AWSStorageDirectory)parent).DirectoryInfo;
            }

            S3DirectoryInfo directory = parentDirectory.GetDirectory(name);
            // Get the full path of the directory, without the bucket name at the beginning, and the tracking :/
            string fullPath = directory.GetDirectoryPath();

            // Check if directory already exists
            if (!directory.Exists)
            {
                var request = new PutObjectRequest {
                    BucketName = _rootDirectory.Name, Key = fullPath, InputStream = new MemoryStream()
                };
                PutObjectResponse response = await Task.Factory.FromAsync(
                    _client.BeginPutObject(request, null, null),
                    (result) => _client.EndPutObject(result));

                newDirectory = directory.ToStorageDirectory();
            }
            else
            {
                throw new Exception("Directory already exists");
            }

            return(newDirectory);
        }
Exemplo n.º 14
0
        public async Task CreateFile(IStorageDirectory directory, string name, Stream file)
        {
            CloudBlobClient blobClient = _account.CreateCloudBlobClient();

            CloudBlobContainer container = blobClient.GetContainerReference(directory.GetRoot().Name);

            if (!await Task <bool> .Factory.FromAsync(container.BeginExists, container.EndExists, null))
            {
                await Task.Factory.FromAsync(container.BeginSetPermissions, container.EndSetPermissions,
                                             new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob },
                                             null);

                CloudBlobDirectory d;

                CloudBlockBlob blob = container.GetBlockBlobReference(name);

                using (file)
                {
                    await Task.Factory.FromAsync(blob.BeginUploadFromStream, blob.EndUploadFromStream, file, null);
                }
            }
        }
Exemplo n.º 15
0
        public async Task CreateFile(IStorageDirectory directory, string name, Stream file)
        {
            CloudBlobClient blobClient = _account.CreateCloudBlobClient();

            CloudBlobContainer container = blobClient.GetContainerReference(directory.GetRoot().Name);

            if (!await Task<bool>.Factory.FromAsync(container.BeginExists, container.EndExists, null))
            {
                await Task.Factory.FromAsync(container.BeginSetPermissions, container.EndSetPermissions,
                                             new BlobContainerPermissions {PublicAccess = BlobContainerPublicAccessType.Blob},
                                             null);

                CloudBlobDirectory d;

                CloudBlockBlob blob = container.GetBlockBlobReference(name);

                using (file)
                {
                    await Task.Factory.FromAsync(blob.BeginUploadFromStream, blob.EndUploadFromStream, file, null);
                }
            }
        }
Exemplo n.º 16
0
        public async Task<IStorageDirectory> CreateDirectory(IStorageDirectory parent, string name)
        {
            AWSStorageDirectory newDirectory = null;

            // Verify the directory name ends with a / (specifies its a directory in AWS)


            S3DirectoryInfo parentDirectory;
            if (parent == null)
            {
                parentDirectory = _rootDirectory;
            }
            else
            {
                parentDirectory = ((AWSStorageDirectory)parent).DirectoryInfo;
            }

            S3DirectoryInfo directory = parentDirectory.GetDirectory(name);
            // Get the full path of the directory, without the bucket name at the beginning, and the tracking :/
            string fullPath = directory.GetDirectoryPath();

            // Check if directory already exists 
            if (!directory.Exists)
            {
                var request = new PutObjectRequest { BucketName = _rootDirectory.Name, Key = fullPath, InputStream = new MemoryStream() };
                PutObjectResponse response = await Task.Factory.FromAsync(
                                                _client.BeginPutObject(request, null, null),
                                                (result) => _client.EndPutObject(result));

                newDirectory = directory.ToStorageDirectory();
            }
            else
            {
                throw new Exception("Directory already exists");
            }

            return newDirectory;
        }
Exemplo n.º 17
0
 public IndexModel(IUserManager userManager, IStorageDirectory storageDirectory)
 {
     _userManager      = userManager;
     _storageDirectory = storageDirectory;
 }
Exemplo n.º 18
0
        public async Task CreateFile(IStorageDirectory directory, string name, Stream file)
        {
            AWSStorageDirectory s3Directory = (directory as AWSStorageDirectory);
            if (s3Directory != null)
            {
                S3FileInfo s3File = s3Directory.DirectoryInfo.GetFile(name);
                if (!s3File.Exists)
                {
                    string fullName = s3Directory.DirectoryInfo.GetDirectoryPath() + name;

                    var request = new PutObjectRequest
                    {
                        BucketName = s3File.Directory.Bucket.Name,
                        Key = fullName,
                        InputStream = file
                    };

                    PutObjectResponse response = await Task.Factory.FromAsync(
                                                    _client.BeginPutObject(request, null, null),
                                                    (result) => _client.EndPutObject(result));
                }
                else
                {
                    throw new ArgumentException("File already exists");
                }
            }
            else
            {
                throw new ArgumentException("directory parameter must be created through the AWS library");
            }
        }
Exemplo n.º 19
0
 /// <summary>
 /// 初始化类<see cref="StorageTaskService"/>。
 /// </summary>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 /// <param name="serviceProvider">服务提供者。</param>
 public StorageTaskService(IStorageDirectory storageDirectory, IServiceProvider serviceProvider)
 {
     _storageDirectory = storageDirectory;
     _serviceProvider  = serviceProvider;
 }
Exemplo n.º 20
0
 public EpubModel(IEpubManager epubManager, IStorageDirectory storageDirectory)
 {
     _epubManager      = epubManager;
     _storageDirectory = storageDirectory;
 }
Exemplo n.º 21
0
 /// <summary>
 /// 初始化类<see cref="SensitiveWordManager"/>。
 /// </summary>
 /// <param name="context">数据库操作实例。</param>
 /// <param name="storageDirectory">存储文件夹接口实例。</param>
 /// <param name="cache">缓存接口。</param>
 public SensitiveWordManager(IDbContext <SensitiveWord> context, IStorageDirectory storageDirectory, IMemoryCache cache)
     : base(context)
 {
     _storageDirectory = storageDirectory;
     _cache            = cache;
 }
Exemplo n.º 22
0
 public Task <IStorageDirectory> CreateDirectory(IStorageDirectory parent, string name)
 {
     return(_provider.CreateDirectory(parent, name));
 }
Exemplo n.º 23
0
 public Task<IStorageDirectory> CreateDirectory(IStorageDirectory parent, string name)
 {
     return _provider.CreateDirectory(parent, name);
 }
Exemplo n.º 24
0
 /// <summary>
 /// 初始化类<see cref="StorageController"/>。
 /// </summary>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 public StorageController(IStorageDirectory storageDirectory)
 {
     _storageDirectory = storageDirectory;
 }
Exemplo n.º 25
0
 /// <summary>
 /// 初始化类<see cref="AvatarManager"/>。
 /// </summary>
 /// <param name="storageDirectory">存储文件夹操作接口。</param>
 public AvatarManager(IStorageDirectory storageDirectory)
 {
     _storageDirectory = storageDirectory;
 }
Exemplo n.º 26
0
 /// <summary>
 /// 初始化类<see cref="StorageTaskService"/>。
 /// </summary>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 /// <param name="mediaDirectory">媒体存储接口。</param>
 public StorageTaskService(IStorageDirectory storageDirectory, IMediaDirectory mediaDirectory)
 {
     _storageDirectory = storageDirectory;
     _mediaDirectory   = mediaDirectory;
 }
Exemplo n.º 27
0
 public EpubManager(IStorageDirectory storageDirectory)
 {
     _storageDirectory = storageDirectory;
     _epubDirectory    = storageDirectory.GetPhysicalPath("epub").MakeDirectory();
 }
Exemplo n.º 28
0
 /// <summary>
 /// 初始化类<see cref="StorageController"/>。
 /// </summary>
 /// <param name="mediaFileProvider">媒体文件提供者接口。</param>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 public StorageController(IMediaDirectory mediaFileProvider, IStorageDirectory storageDirectory)
 {
     _mediaFileProvider = mediaFileProvider;
     _storageDirectory  = storageDirectory;
 }
Exemplo n.º 29
0
 /// <summary>
 /// 初始化类<see cref="ClearTaskService"/>。
 /// </summary>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 public ClearTaskService(IStorageDirectory storageDirectory)
 {
     _storageDirectory = storageDirectory;
 }
Exemplo n.º 30
0
 public Task CreateFile(IStorageDirectory directory, string name, Stream file)
 {
     return _provider.CreateFile(directory, name, file); 
 }
Exemplo n.º 31
0
 public EpubManager(IStorageDirectory storageDirectory)
 {
     _storageDirectory = storageDirectory;
 }
Exemplo n.º 32
0
 public Task CreateFile(IStorageDirectory directory, string name, Stream file)
 {
     return(_provider.CreateFile(directory, name, file));
 }
Exemplo n.º 33
0
 public DefaultMediaDirectory(IStorageDirectory directory, IDbContext <MediaFile> mfdb, IDbContext <StoredFile> sfdb) : base(directory, mfdb, sfdb)
 {
 }
Exemplo n.º 34
0
 /// <summary>
 /// 初始化类<see cref="StorageTaskService"/>。
 /// </summary>
 /// <param name="storageDirectory">存储文件夹接口。</param>
 /// <param name="storageDirectory">媒体文件夹接口。</param>
 public StorageTaskService(IStorageDirectory storageDirectory, IMediaDirectory mediaDirectory)
     : base(storageDirectory)
 {
     _mediaDirectory = mediaDirectory;
 }