2017-09-15 1 views
0

Amazon S3에서 Microsoft Word (.docx) 파일의 내용을 가져와야합니다. 개체를 가져올 수는 있지만 메모 파일에서 Word 파일을 연 것처럼 보이는 결과가 원하는 내용이 아닙니다. 나는 .txt 파일을 읽으려고했는데 완벽하게 작동합니다. 문제는 콘텐츠 유형이라고 생각합니다. 파일 @Amazon에 어떻게 내 코드는 그 achive 않는 수정으로 문서의 내용을 얻을 수Amazon S3의 Word 파일 콘텐츠 유형

  1. 가 가능 : 나는이 개 질문을하고 싶습니다

    ?

  2. 형식 (색상, 굵은 글씨 등)으로 내용을 가져올 수 있습니까? 만약 그렇다면, 나는 단서를 평가할 것이다.

내 코드 :

public static string ReadObjectData(string keyName) 
{ 
    string responseBody = ""; 

    //using (IAmazonS3 client = new AmazonS3Client(RegionEndpoint.USEast1)) 
    using (IAmazonS3 client = new Amazon.S3.AmazonS3Client("key", "secretKey", Amazon.RegionEndpoint.EUCentral1)) 
    { 
     GetObjectRequest request = new GetObjectRequest 
     { 
      BucketName = "bucketName", 
      Key = keyName 
     }; 

     using (GetObjectResponse response = client.GetObject(request)) 
     using (Stream responseStream = response.ResponseStream) 
     using (StreamReader reader = new StreamReader(responseStream)) 
     { 
      responseBody = reader.ReadToEnd(); 
     } 
    } 
    return responseBody; 
} 
+0

문서 열기와 관련된 질문에 코드가 없으므로 파일을 메모장에서 열도록 트리거하는 작업을 설명 할 수 있습니까? –

답변

0

콘텐츠 유형으로 개체를 가져 오는 것에 대한 질문을 이해합니다. Michael의 대답에는 문제를 해결할 수있는 정보가 있다고 생각합니다.

S3 버킷에 개체를 저장하는 동안 몇 가지 추가 정보를 추가하기 만하면됩니다. 객체가 버킷에 추가되면 메타 데이터 필드에 내용 유형을 설정할 수 있습니다.

개체를 저장하고 나중에 검색하는 경우 메타 데이터에 콘텐츠 형식 (Content-Type)을 추가하십시오. 따라서 객체를 읽을 때 객체의 내용 유형을 가져올 수 있습니다.

나중에 개체를 추가하고 검색 할 때 더 나은 방법입니다. 당신이 다른 사람에 의해 추가 된 객체를 읽는 경우

doc  application/msword 
docx application/vnd.openxmlformats-officedocument.wordprocessingml.document 

, 당신은 마이클의 대답에 언급을 도출하는 데 필요한 콘텐츠 형식의 정보를 추가 한 후 요청 (또는) 할 수 있습니다.

1

올바른 Content-Type.docx 파일은 application/vnd.openxmlformats-officedocument.wordprocessingml.document입니다.

Content-type이 잘못 설정되어 있으면 웹 브라우저에서 문서를 잘못 렌더링 할 수는 있지만 여기서는 문제가되지 않습니다. 올바르게 설정하면 코드에서 코드를 읽으려는 경우 실제로는 responseBody에 포함 된 바이트에 영향을 미치지 않습니다.

.docx 형식의 파일 내부를 이해하는 라이브러리가 필요합니다.

관련 문제