2017-09-15 11 views
0

Amazon S3からMicrosoft Word(.docx)ファイルの内容を取得する必要があります。私はオブジェクトを取得することができますが、Wordファイルがメモ帳で開かれたように見えるので、結果は正確には私が望むものではありません。私は.txtファイルを読み込もうとしましたが、完全に動作します。問題はコンテンツタイプだと私は思う。ファイル@Amazonであり、どのように私のコードはそれをachiveん変更すると、文書の内容を取得するためにAmazon S3のWordファイルのコンテンツタイプ

  1. ことが可能です:私は2つの質問をお願いしたいと思い

  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

コンテンツタイプでオブジェクトを取得することに関するご質問をお待ちしております。マイケルの答えには、問題を解決するための情報があると思います。

S3バケットにオブジェクトを保存している間に、追加情報を追加するのと同じです。コンテンツタイプは、オブジェクトがバケットに追加されたときにメタデータフィールドで設定できます。

オブジェクトを保存して後で取得する場合は、メタデータにコンテンツタイプ(Content-Type)を追加してください。オブジェクトを読むときにオブジェクトのコンテンツタイプを取得できるようにします。

これは、後でオブジェクトを追加して取得する方が良い方法です。あなたが他の誰かによって追加のオブジェクトを読んでいる場合

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

、あなたはマイケルの答えで述べたように、それを引き出すために必要なコンテンツタイプ情報(または)を追加し、その後に要求することができます。

1

.docxファイルの正しいContent-Typeapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentです。

Content-typeが正しく設定されていないと、Webブラウザでドキュメントが正しく表示されない可能性がありますが、ここで問題はないと思われます。正しく設定すると、実際にコードから読み取ろうとしている場合は、に含まれるバイトには影響しません。

.docx形式のファイルの内部を理解するライブラリが必要です。

関連する問題