public override async Task <bool> DownloadAsync(FileProviderDownloadArgs args) { var container = await DatabaseFileContainerRepository.FindAsync( args.ContainerName, args.CancellationToken ); if (container == null) { return(false); } var file = await DatabaseFileRepository.FindAsync( container.Id, args.FileId, args.CancellationToken ); if (file == null) { return(false); } using (var fs = new FileStream(args.Path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { await fs.WriteAsync(file.Content, 0, file.Content.Length); } return(true); }
public override async Task <bool> DownloadAsync(FileProviderDownloadArgs args) { var fileName = S3FileNameCalculator.Calculate(args); var client = GetS3Client(args); var containerName = GetContainerName(args); var getObjectResponse = await client.GetObjectAsync(containerName, fileName); await getObjectResponse.WriteResponseStreamToFileAsync(args.Path, true, args.CancellationToken); return(true); }
public override async Task <bool> DownloadAsync(FileProviderDownloadArgs args) { var fileName = AzureFileNameCalculator.Calculate(args); if (!await FileExistsAsync(args, fileName)) { return(false); } var blobClient = GetBlobClient(args, fileName); var download = await blobClient.DownloadToAsync(args.Path, args.CancellationToken); return(download.Status == (int)HttpStatusCode.OK); }
public override async Task <bool> DownloadAsync(FileProviderDownloadArgs args) { var fileName = MinioFileNameCalculator.Calculate(args); var client = GetMinioClient(args); var containerName = GetContainerName(args); if (!await FileExistsAsync(client, containerName, fileName)) { return(false); } await client.GetObjectAsync(containerName, fileName, args.Path); return(true); }
public override async Task <bool> DownloadAsync(FileProviderDownloadArgs args) { var filePath = FilePathCalculator.Calculate(args); if (!File.Exists(filePath)) { return(false); } return(await Policy.Handle <IOException>() .WaitAndRetryAsync(2, retryCount => TimeSpan.FromSeconds(retryCount)) .ExecuteAsync(async() => { using var fileStream = File.OpenRead(filePath); using var ts = new FileStream("", FileMode.OpenOrCreate, FileAccess.ReadWrite); await fileStream.CopyToAsync(ts, args.CancellationToken); return true; })); }
public override async Task <bool> DownloadAsync(FileProviderDownloadArgs args) { var containerName = GetContainerName(args); var fileName = AliyunFileNameCalculator.Calculate(args); var ossClient = GetOssClient(args.Configuration); if (!FileExistsAsync(ossClient, containerName, fileName)) { return(false); } var result = ossClient.GetObject(containerName, fileName); using (var fs = new FileStream(args.Path, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { await result.Content.CopyToAsync(fs); } return(true); }
public override async Task <bool> DownloadAsync(FileProviderDownloadArgs 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 { await Client.DownloadFileEx(storageNode, fileId, args.Path, configuration.ClusterName); return(true); } catch (Exception ex) { Logger.LogException(ex, LogLevel.Error); return(false); } }
public Task <bool> DownloadAsync(FileProviderDownloadArgs args) { throw new NotImplementedException(); }