하늘색 블롭 저장소에 .net 핵심 웹 API를 통해 수신 된 IFormFile
을 추가하려고합니다. 이제하늘색 방울 저장소에 스트림으로 추가
static internal CloudStorageAccount StorageAccount =>
new CloudStorageAccount(new StorageCredentials(AccountName, AccessKey, AccessKeyName), true);
// Create a blob client.
static internal CloudBlobClient BlobClient => StorageAccount.CreateCloudBlobClient();
// Get a reference to a container
static internal CloudBlobContainer Container(string ContainerName)
=> BlobClient.GetContainerReference(ContainerName);
static internal CloudBlobContainer ProfilePicContainer
=> Container(ProfilePicContainerName);
나는이 같은 ProfilePicContainer
을 사용합니다 :
var Container = BlobStorage.ProfilePicContainer;
string fileName = Guid.NewGuid().ToString("N") + Path.GetExtension(ProfileImage.FileName);
var blockBlob = Container.GetBlockBlobReference(fileName);
var fileStream = ProfileImage.OpenReadStream();
fileStream.Position = 0;
await blockBlob.UploadFromStreamAsync(fileStream);
이 나에게 다음과 같은 오류를 제공합니다 :이 내가 설정 한 속성입니다
Microsoft.WindowsAzure.Storage.StorageException: 'Cannot access a closed Stream.'
Inner Exception ObjectDisposedException: Cannot access a closed Stream.
디버깅, 내가 가진 fileStream.Position = 0
의 위치가 이미 0이되기 전에 눈치 채 셨습니다. 그러나이 오류가 발생 했으므로 줄을 추가했습니다. 또한 기다리는 줄에서 fileStream
의 _disposed
은 false로 설정됩니다.
또한 BLOB 연결에 대해서는 문자열 상수 AccessKey
에 대해 유효하지 않은 값을 설정하려고 시도했으며 정확히 동일한 오류를 보여줍니다. 어떤 의미인지는 모르겠다. 디버거에서 blobBlock
내의 모든 값을 확인했지만 연결되어 있는지 확인하는 방법을 모르겠습니다.
그것은 fileStream' 이미 푸른 저장 SDK의 문제가 아니라 닫힌 '같은 소리를 통해 수정했다? 'fileStream' 스트림에 전혀 액세스 할 수 있습니까? '(var testStream = File.OpenWrite (Path.GetTempFileName())) fileStream.CopyTo (testStream)'를 사용하여 디스크에 쓸 수 있습니까? –
yes fileStream을 파일에 쓰고 바이트에 쓰려고했습니다. 둘 다 잘 작동합니다. –
블록을 사용하여 스트림을 넣으십시오. –