Example #1
0
        public override async Task <FileData> GetAsync(FileGetOptions fileGetOptions)
        {
            FileData file = new FileData();

            CloudStorageAccount storageAccount = Authorized(fileGetOptions);

            CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

            CloudFileShare fileshare = fileClient.GetShareReference(fileGetOptions.Folder);

            if (fileshare.ExistsAsync().Result)
            {
                CloudFileDirectory cFileDir = fileshare.GetRootDirectoryReference();

                CloudFile cFile = cFileDir.GetFileReference(fileGetOptions.Key);

                if (cFile.ExistsAsync().Result)
                {
                    file.Stream.Position = 0;
                    await cFile.DownloadToStreamAsync(file.Stream);
                }
            }

            file.Type = "Azure File Storage";

            return(file);
        }
Example #2
0
        public async override Task <FileData> GetAsync(FileGetOptions fileGetOptions)
        {
            string fileAddress = Path.Combine(fileGetOptions.Address, fileGetOptions.Folder, fileGetOptions.Key);

            FileData file = new FileData();

            using (FileStream fs = new FileStream(fileAddress, FileMode.Open, FileAccess.Read))
            {
                await fs.CopyToAsync(file.Stream, (int)fs.Length);
            }

            file.Type = "Local File System";

            return(file);
        }
Example #3
0
        public override async Task <FileData> GetAsync(FileGetOptions fileGetOptions)
        {
            FileData file = new FileData();

            CloudStorageAccount storageAccount = Authorized(fileGetOptions);

            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

            CloudBlobContainer container = blobClient.GetContainerReference(fileGetOptions.Folder.ToLower());

            CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileGetOptions.Key);

            switch (fileGetOptions.FileTransfer)
            {
            case Enum.FileTransferOptions.Stream:
                await blockBlob.DownloadToStreamAsync(file.Stream);

                break;

            case Enum.FileTransferOptions.Url:
                file.Loc = blockBlob.Uri.AbsoluteUri;
                break;

            case Enum.FileTransferOptions.SecureUrl:

                var policy = new SharedAccessBlobPolicy()
                {
                    Permissions            = SharedAccessBlobPermissions.Read,
                    SharedAccessExpiryTime = DateTime.UtcNow + fileGetOptions.SecureLinkTimeToLive
                };

                file.Loc = (blockBlob.Uri.AbsoluteUri + blockBlob.GetSharedAccessSignature(policy));
                break;
            }

            file.Type = "Mircosoft Azure Blob Storage";

            return(file);
        }
Example #4
0
        public override async Task <FileData> GetAsync(FileGetOptions fileGetOptions)
        {
            GoogleCredential credential = await AuthorizedAsync(fileGetOptions);

            StorageClient storageClient = await StorageClient.CreateAsync(credential);

            FileData file = new FileData();

            switch (fileGetOptions.FileTransfer)
            {
            case FileTransferOptions.Stream:
                await storageClient.DownloadObjectAsync(fileGetOptions.Folder, fileGetOptions.Key, file.Stream);

                break;

            case FileTransferOptions.Url:
                var _file = await storageClient.GetObjectAsync(fileGetOptions.Folder, fileGetOptions.Key);

                if (_file != null)
                {
                    file.Loc = _file.MediaLink;
                }
                break;

            case FileTransferOptions.SecureUrl:
                var urlSigner = UrlSigner.FromServiceAccountCredential((ServiceAccountCredential)credential.UnderlyingCredential);

                if (urlSigner != null)
                {
                    urlSigner.Sign(fileGetOptions.Folder, fileGetOptions.Key, fileGetOptions.SecureLinkTimeToLive);
                }
                break;
            }

            file.Type = "Google Cloud Storage";

            return(file);
        }
Example #5
0
 public abstract Task <FileData> GetAsync(FileGetOptions fileGetOptions);