REST 끝점을 노출하고 BLOB 컨테이너에서 파일을 가져 오는 간단한 WCF 서비스가 있습니다. 서비스는 파일을 스트림으로 반환합니다. Azure BLOB를 WCF 서비스에서 스트림으로 반환 - 스트림을 닫아야합니까?
http://devdump.wordpress.com/2008/12/07/disposing-return-values/
이
내 코드입니다 : 응답이 이루어진 후에 내가 스트림을 닫는에 대해이 게시물을 발견 그래서public class FileService
{
[OperationContract]
[WebGet(UriTemplate = "{*url}")]
public Stream ServeHttpRequest(string url)
{
var fileDir = Path.GetDirectoryName(url);
var fileName = Path.GetFileName(url);
var blobName = Path.Combine(fileDir, fileName);
return getBlob(blobName);
}
private Stream getBlob(string blobName)
{
var account = CloudStorageAccount.FromConfigurationSetting("ConnectingString");
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("data");
var blob = container.GetBlobReference(blobName);
MemoryStream ms = new MemoryStream();
blob.DownloadToStream(ms);
ms.Seek(0, SeekOrigin.Begin);
return ms;
}
}
내가 가진 두 개의 질문 :
- 내가해야 하는가 게시물에 언급 된 패턴을 따르십니까?
- 반환 유형을 Byte []로 변경하면 Cons/Pro는 무엇입니까?
내가 byte[]
에 반환 유형을 변경하는 것이 좋습니다 것