Browse Source

Try seek blob stream position to begin

pull/10445/head
jadyn 5 years ago
parent
commit
0f6c4a5356
  1. 21
      framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs
  2. 5
      modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/MediaDescriptors/MediaDescriptorAppService.cs

21
framework/src/Volo.Abp.BlobStoring/Volo/Abp/BlobStoring/BlobContainer.cs

@ -194,14 +194,14 @@ namespace Volo.Abp.BlobStoring
var blobNormalizeNaming = var blobNormalizeNaming =
BlobNormalizeNamingService.NormalizeNaming(Configuration, ContainerName, name); BlobNormalizeNamingService.NormalizeNaming(Configuration, ContainerName, name);
return await Provider.GetOrNullAsync( return TrySeekStreamToBegin(await Provider.GetOrNullAsync(
new BlobProviderGetArgs( new BlobProviderGetArgs(
blobNormalizeNaming.ContainerName, blobNormalizeNaming.ContainerName,
Configuration, Configuration,
blobNormalizeNaming.BlobName, blobNormalizeNaming.BlobName,
CancellationTokenProvider.FallbackToProvider(cancellationToken) CancellationTokenProvider.FallbackToProvider(cancellationToken)
) )
); ));
} }
} }
@ -214,5 +214,22 @@ namespace Volo.Abp.BlobStoring
return CurrentTenant.Id; return CurrentTenant.Id;
} }
protected virtual Stream TrySeekStreamToBegin(Stream stream)
{
if (stream == null)
{
return stream;
}
if (!stream.CanSeek)
{
return stream;
}
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
} }
} }

5
modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/MediaDescriptors/MediaDescriptorAppService.cs

@ -24,11 +24,6 @@ namespace Volo.CmsKit.MediaDescriptors
var entity = await MediaDescriptorRepository.GetAsync(id); var entity = await MediaDescriptorRepository.GetAsync(id);
var stream = await MediaContainer.GetAsync(id.ToString()); var stream = await MediaContainer.GetAsync(id.ToString());
if (stream.CanSeek)
{
stream.Position = 0;
}
return new RemoteStreamContent(stream, entity.Name, entity.MimeType); return new RemoteStreamContent(stream, entity.Name, entity.MimeType);
} }
} }

Loading…
Cancel
Save