Browse Source

Merge pull request #10445 from JadynWong/jadyn/fix-cmskit-media-download

Try seek blob stream position to begin
pull/10458/head
maliming 5 years ago
committed by GitHub
parent
commit
5e171e6a50
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs
  2. 4
      framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs
  3. 4
      framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs
  4. 4
      framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs
  5. 13
      framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs
  6. 14
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs

4
framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs

@ -86,9 +86,7 @@ namespace Volo.Abp.BlobStoring.Aliyun
return null;
}
var result = ossClient.GetObject(containerName, blobName);
var memoryStream = new MemoryStream();
await result.Content.CopyToAsync(memoryStream);
return memoryStream;
return await TryCopyToMemoryStreamAsync(result.Content, args.CancellationToken);
}
protected virtual string GetContainerName(BlobProviderArgs args)

4
framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs

@ -103,9 +103,7 @@ namespace Volo.Abp.BlobStoring.Aws
Key = blobName
});
var memoryStream = new MemoryStream();
await response.ResponseStream.CopyToAsync(memoryStream);
return memoryStream;
return await TryCopyToMemoryStreamAsync(response.ResponseStream, args.CancellationToken);
}
}

4
framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs

@ -67,9 +67,7 @@ namespace Volo.Abp.BlobStoring.Azure
var blobClient = GetBlobClient(args, blobName);
var download = await blobClient.DownloadAsync();
var memoryStream = new MemoryStream();
await download.Value.Content.CopyToAsync(memoryStream);
return memoryStream;
return await TryCopyToMemoryStreamAsync(download.Value.Content, args.CancellationToken);
}
protected virtual BlobClient GetBlobClient(BlobProviderArgs args, string blobName)

4
framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs

@ -74,9 +74,7 @@ namespace Volo.Abp.BlobStoring.FileSystem
{
using (var fileStream = File.OpenRead(filePath))
{
var memoryStream = new MemoryStream();
await fileStream.CopyToAsync(memoryStream, args.CancellationToken);
return memoryStream;
return await TryCopyToMemoryStreamAsync(fileStream, args.CancellationToken);
}
});
}

13
framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs

@ -75,20 +75,13 @@ namespace Volo.Abp.BlobStoring.Minio
return null;
}
var memoryStream = new MemoryStream();
Stream blobStream = null;
await client.GetObjectAsync(containerName, blobName, (stream) =>
{
if (stream != null)
{
stream.CopyTo(memoryStream);
}
else
{
memoryStream = null;
}
blobStream = stream;
});
return memoryStream;
return await TryCopyToMemoryStreamAsync(blobStream, args.CancellationToken);
}
protected virtual MinioClient GetMinioClient(BlobProviderArgs args)

14
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.cs

@ -1,4 +1,5 @@
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace Volo.Abp.BlobStoring
@ -12,5 +13,18 @@ namespace Volo.Abp.BlobStoring
public abstract Task<bool> ExistsAsync(BlobProviderExistsArgs args);
public abstract Task<Stream> GetOrNullAsync(BlobProviderGetArgs args);
protected virtual async Task<Stream> TryCopyToMemoryStreamAsync(Stream stream, CancellationToken cancellationToken = default)
{
if(stream == null)
{
return null;
}
var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream, cancellationToken);
memoryStream.Seek(0, SeekOrigin.Begin);
return memoryStream;
}
}
}

Loading…
Cancel
Save