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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
21 additions and
22 deletions
-
framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs
-
framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs
-
framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs
-
framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs
-
framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs
-
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobProviderBase.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) |
|
|
|
|
|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -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) |
|
|
|
|
|
|
|
@ -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); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
@ -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) |
|
|
|
|
|
|
|
@ -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; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|