Azure 저장 장치에서 다운로드되는 완전 얼룩에 문제가 있습니다. 저장되는 파일은 이미지입니다. 다운로드되는 거의 모든 파일은 맨 아래에 여러 행이 누락됩니다. 나는 얼룩을 검사했고 올바르게 업로드되었습니다. 나는 푸른 서비스에서 방울을 다운로드 다음 코드를 사용하고 :불완전한 Azure 다운로드
private async Task Download(CloudBlobClient client)
{
try
{
_media = await _directory.CreateFileAsync(ResourceName, CreationCollisionOption.FailIfExists);
}
catch (Exception)
{
return;
}
using (var stream = await _media.OpenAsync(FileAccessMode.ReadWrite))
{
var blob = await GetBlob(client);
await blob.DownloadToStreamAsync(stream);
_category.NotifyAzureProgress();
await stream.FlushAsync();
}
}
방법의 getBlob 나()는 다음과 같습니다
private async Task<CloudBlockBlob> GetBlob(CloudBlobClient client)
{
CloudBlobContainer container = client.GetContainerReference(ContainerName);
await container.CreateIfNotExistsAsync();
var blob = container.GetBlockBlobReference(ResourceName);
return blob;
}
업로드 코드 :
private async Task UploadAsync(CloudBlobClient client)
{
_media = await _directory.GetFileAsync(ResourceName);
using (var stream = await _media.OpenAsync(FileAccessMode.Read))
{
var blob = await GetBlob(client);
await blob.UploadFromStreamAsync(stream);
_category.NotifyAzureProgress();
}
}
을 어떤 도움을 주셔서 감사합니다!
편집 : 하나의 세부 사항을 놓친 것을 깨달았습니다. 다운로드 한 이미지의 크기는 정확하지만 하단의 몇 줄은 검정색입니다. 소스 이미지와 동일한 픽셀을 가지고 있지 않습니다. MD5 해시를 확인한 후 일치하는 동안 외부 앱을 통해 이미지를 다운로드 할 때 위 코드로 이미지를 다운로드 할 때 일치하지 않습니다.
Edit2 : CloudBlob 및 출력 스트림의 속성을 검사 한 후, 다운로드 한 후 BLOB가 올바른 길이를 제공하더라도 스트림이 일반적으로 조금 더 낮게 표시된다는 것을 알았습니다. 내가 범위를 다운로드했지만 아무 소용이 시도
업로드 코드입니까? 이 이미지들은 Blob 저장소에 어떻게 들어가고 있습니까? 그것은 다운로드가 아닌 것이 가능합니다. 얼룩을 어떻게 확인 했니? – SliverNinja
Azure Storage Explorer (http://azurestorageexplorer.codeplex.com/)를 통해 얼룩을 확인했습니다. 업로드 코드를 추가하겠습니다. –
이미지를 다운로드하기 위해 외부 도구를 사용하여 이미지가 손상되지 않았 음을 확인 했습니까? 또한 MD5 해시는 다운로드 한 콘텐츠에 사용됩니다 (2.0 SDK에서 기본적으로 켜져 있다고 생각합니다). –