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); }
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); }
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); }
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); }
public abstract Task <FileData> GetAsync(FileGetOptions fileGetOptions);