2012-05-24 2 views
3

S3에서 개체의 MIME 형식을 검색하는 방법이 있습니까? S3에서 여러 객체를 가져올 솔루션을 구현하려고합니다. 키를 사용하고 MIME 유형을 계산하기위한 하위 문자열을 얻는 대신, Amazon S3에서 MIME 유형을 어떤 방식으로 얻을 수 있습니까? 나는 cloud berry explorer pro를 사용하고 있습니다. MIME 유형을 설정하도록하겠습니다.하지만 .NET 용 AWS SDK 또는 REST API를 사용하여이 정보를 검색하는 방법은 무엇입니까?Amazon S3에서 객체의 MIME 유형을 가져 오는 방법은 무엇입니까?

답변

5

REST API는이 목적을 위해 HEAD Object 작업을 제공하며 AWS SDK for .NET 편리 GetObjectMetadata() 방법을 통해 매우 동일한 기능을 래핑 :

GetObjectMetadata 작업은 정보에 대한 특정 개체 또는 개체 크기를 검색하는 데 사용됩니다

실제로 객체 자체를 가져 오지 않습니다. 메타 데이터에만 관심이 있고 오브젝트 데이터에 대역폭을 낭비하지 않으려는 경우에 유용합니다. 응답은 응답 본문이 없다는 점을 제외하면 GetObject 응답과 동일합니다.[강조 광산]

+0

내가 HEAD 개체를 얻을 것이다 경우 확실하지 오전하지만 해결책을 발견 그것에. 내 대답은 아래에서 찾으십시오. –

+1

S3에 저장된 오브젝트의 MIME 유형을 얻는 것은 실제로 매우 쉽습니다. 당신이해야 할 일은 입니다. response = _s3.GetObject (request); string MIMEtype = response.ContentType; 응답 .ContentType은 s3에서 MIME 유형을 가져옵니다. 우리는 개체를 업로드하고 우리의 s3 계정을 유지하기 위해 Cloud 베리 탐색기를 사용하고 있습니다. 그것은 많은 기본 MIME 유형을 가지고 있으며 업로드 할 때 객체에 할당합니다. 고유 한 MIME 유형을 추가 할 수도 있습니다. 확장자와 MIME 형식을 지정할 수 있으므로 다음에 무언가를 업로드 할 때 자동으로 해당 MIME 형식을 해당 개체에 할당합니다. –

+0

@ Abhi.Net :'GetObject()'는 원칙적으로 잘 작동하지만, @Roman은 HEAD resp를 제안하는 것이 옳습니다. 여기에'GetObjectMetadata()'가 있습니다. 이것은 유스 케이스에 대해 훨씬 더 효율적입니다. 자세한 내용은 그의 답변에 대한 업데이트를 참조하십시오. –

2

같은 요청의 파일의 파일 및 MIME 타입 얻으려면 ...

using (var client = AWSClientFactory.CreateAmazonS3Client(region)) 
{ 
    var response = client.GetObject(bucket, key); 
    var mimeType = response.Headers[response.Headers.ContentType]; 
    return new StreamWithMimeType(response.ResponseStream, mimeType); 
} 
+0

'HeadersCollection'은 특별히 'ContentType'속성을 가지고 있습니다. 문자열 색인 대신 사용하는 것이 좋습니다. –

+1

@DaveVandenEynde가 귀하의 제안대로 업데이트되었습니다. –

관련 문제