2017-09-18 15 views
1

ファイルをs3インスタンスにアップロードしてレスポンスヘッダを取得する。以下は私のコードです:AWS S3レスポンスヘッダ

AmazonS3 conn = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)) 
      .withRegion(Regions.US_WEST_2).build(); 
    Bucket bucket; 
    if (conn.doesBucketExist("xxx")) { 
     System.out.println("Bucket already exists"); 

    } 
    bucket = conn.createBucket("xxx"); 

    ByteArrayInputStream input = new ByteArrayInputStream("Hello World!".getBytes()); 
    ObjectMetadata objectMetadata = new ObjectMetadata(); 
    PutObjectRequest request = new PutObjectRequest(bucket.getName(), "hello.txt", input, objectMetadata); 

    PutObjectResult response = conn.putObject(request); 

    S3Object object = conn.getObject(new GetObjectRequest(bucket.getName(), "hello.txt")); 
    InputStream objectData = object.getObjectContent(); 
    System.out.println("Content-Type: " + object.getObjectMetadata().getContentType() + " custom Header : " 
      + object.getObjectMetadata().getcust_header()); 

すべてのヘッダーを印刷しようとしています。 しかし、すべてのヘッダーを印刷しようとしているときにnull値を取得しています。誰かが私が間違っている場所を説明してもらえますか?私は正常に動作しているソリューションに到着した

ソースAWS Documentation

答えて

0

。応答によって読み取られるカスタムヘッダーは、HTTPヘッダーとは異なり設定する必要があります。そして、私たちは以下のように印刷することができます。

Date expirationTime = new Date(); 
response.setETag("123"); 
response.setExpirationTime(expirationTime); 
System.out.println("ET Flag : " + response.getETag() + " " + "Expiration Time" + response.getExpirationTime() + " "); 

まず我々はPutObjectRequestで提供された方法を使用するか、カスタムオブジェクトのカスタムゲッターとセッターを作成する必要がObjectMetadataにカスタムヘッダーを作成する必要があり、その後 。