public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var fileName = MinioFileNameCalculator.Calculate(args); var client = GetMinioClient(args); var containerName = GetContainerName(args); if (!await FileExistsAsync(client, containerName, fileName)) { return(null); } var memoryStream = new MemoryStream(); await client.GetObjectAsync(containerName, fileName, async stream => { if (stream != null) { await stream.CopyToAsync(memoryStream); } else { memoryStream = null; } }); return(memoryStream); }
public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var container = await DatabaseFileContainerRepository.FindAsync( args.ContainerName, args.CancellationToken ); if (container == null) { return(null); } var file = await DatabaseFileRepository.FindAsync( container.Id, args.FileId, args.CancellationToken ); if (file == null) { return(null); } return(new MemoryStream(file.Content)); }
public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var containerName = GetContainerName(args); var blobName = AliyunFileNameCalculator.Calculate(args); var ossClient = GetOssClient(args.Configuration); if (!FileExistsAsync(ossClient, containerName, blobName)) { return(null); } var result = ossClient.GetObject(containerName, blobName); var memoryStream = new MemoryStream(); await result.Content.CopyToAsync(memoryStream); return(memoryStream); }
public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var fileName = AzureFileNameCalculator.Calculate(args); if (!await FileExistsAsync(args, fileName)) { return(null); } var blobClient = GetBlobClient(args, fileName); var download = await blobClient.DownloadAsync(args.CancellationToken); var memoryStream = new MemoryStream(); await download.Value.Content.CopyToAsync(memoryStream); return(memoryStream); }
public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var filePath = FilePathCalculator.Calculate(args); if (!File.Exists(filePath)) { return(null); } return(await Policy.Handle <IOException>() .WaitAndRetryAsync(2, retryCount => TimeSpan.FromSeconds(retryCount)) .ExecuteAsync(async() => { using var fileStream = File.OpenRead(filePath); var memoryStream = new MemoryStream(); await fileStream.CopyToAsync(memoryStream, args.CancellationToken); return memoryStream; })); }
public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var configuration = args.Configuration.GetFastDFSConfiguration(); ConfigurationFactory.AddIfNotContains(configuration); var fileId = FileNameCalculator.Calculate(args); var containerName = GetContainerName(configuration, args); var storageNode = await Client.GetStorageNodeAsync(containerName, configuration.ClusterName); try { var content = await Client.DownloadFileAsync(storageNode, fileId, configuration.ClusterName); return(new MemoryStream(content)); } catch (Exception ex) { Logger.LogException(ex, LogLevel.Error); return(null); } }
public override async Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { var fileName = S3FileNameCalculator.Calculate(args); var client = GetS3Client(args); var containerName = GetContainerName(args); if (!await FileExistsAsync(client, containerName, fileName, args.CancellationToken)) { return(null); } var getObjectResponse = await client.GetObjectAsync(containerName, fileName); if (getObjectResponse.ResponseStream != null) { var memoryStream = new MemoryStream(); await getObjectResponse.ResponseStream.CopyToAsync(memoryStream); return(memoryStream); } return(null); }
public Task <Stream> GetOrNullAsync(FileProviderGetArgs args) { throw new NotImplementedException(); }